Problemas com ActionListener

5 respostas
victorrgds

fala galera!

estou tendo o seguinte problema nesta classe:

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.util.ArrayList;
import java.util.List;
import java.util.Iterator;

   public class EfetuarLocaView extends JFrame{
   
      private JButton consultarCliente, efetuarLocacao, consultarVeiculo;
      private JTable tabelaCliente, tabelaVeiculo;
      private JPanel painel;
		protected JComboBox km;
		
		JLabel localLocacao,  dtLocacao, tipoTarifa;
		JTextField tf_buscaCli, tf_buscaVeic, tf_localLocacao, tf_dtLocacao;
		JRadioButton radioCpf, radioCnpj;
   
      public EfetuarLocaView(){
      
         super("Locar Veículo");
         setSize(540,540);
         setLocation(400,100);
         painel = new JPanel(new SpringLayout());
         SpringLayout layout = new SpringLayout();
         painel.setLayout(layout);
      
         
			//JLabel
			localLocacao = new JLabel("Local de locação");
			dtLocacao = new JLabel("Data de locação");
			tipoTarifa = new JLabel("Tipo da tarifa");
			
			//JText
			tf_buscaCli = new JTextField(15);
			tf_buscaVeic = new JTextField(15);
			tf_localLocacao = new JTextField(15);
			tf_dtLocacao = new JTextField(15);
			
			//JRadio
			
    	  	radioCpf = new JRadioButton("CPF");
    	  	radioCnpj = new JRadioButton("CNPJ");
		  
		  	//Grupo de Opcoes
    	  	ButtonGroup grupo = new ButtonGroup();
    	  	grupo.add(radioCpf);
        	grupo.add(radioCnpj);
		  	radioCpf.setSelected(true);

				
			//JButtons
			consultarCliente = new JButton("Consultar Cliente");
         consultarVeiculo = new JButton("Consultar Veículo");
         efetuarLocacao = new JButton("Efetuar Locação");
      
			//Tratador dos botoes
			TrataBotao tratador = new TrataBotao();
			
			//Ação dos botões
			consultarCliente.addActionListener(tratador);
			consultarVeiculo.addActionListener(tratador);
			efetuarLocacao.addActionListener(tratador);
			
			//JCombo de tarifa
		   String[] opcoes ={"Km rodado", "Km livre"};
		   km = new JComboBox(opcoes);
		   km.setSelectedIndex(0);
			
      
      	//Instancia Tabela
         tabelaCliente = new JTable();
      //Define um modelo para a tabela com o Título da coluna
         TableModel model = new DefaultTableModel(new String[] {"ID","CPF","Nome","Telefone"},0);
      //seta o modelo
         tabelaCliente.setModel(model);
      //seta o nome??
         tabelaCliente.setName("Resultado");
      //nao sei ainda
         JScrollPane resultado = new JScrollPane();
      //nao sei ainda
         resultado.setViewportView(tabelaCliente);
      //define um tamanho fixo pra tabela
         tabelaCliente.setPreferredScrollableViewportSize(new Dimension(490, 100));
      //nao sei	
         DefaultTableModel dtm = (DefaultTableModel) tabelaCliente.getModel();
      //adiciona uma linha
         dtm.addRow(new Object[] {"popular","Gol","Paula Tejano","10/09/2012"});
         dtm.addRow(new Object[] {"chique","Palio","Tomas Turbano","10/09/2012"});
      
      	//Instancia Tabela
         tabelaVeiculo = new JTable();
      //Define um model2o para a tabela com o Título da coluna
         TableModel model2 = new DefaultTableModel(new String[] {"Veiculo","Grupo","Acessórios","Placa"},0);
      //seta o model2o
         tabelaVeiculo.setModel(model2);
      //seta o nome??
         tabelaVeiculo.setName("Resultado");
      //nao sei ainda
         JScrollPane resultado2 = new JScrollPane();
      //nao sei ainda
         resultado2.setViewportView(tabelaVeiculo);
      //define um tamanho fixo pra tabela
         tabelaVeiculo.setPreferredScrollableViewportSize(new Dimension(490, 100));
      //nao sei	
         DefaultTableModel dtm2 = (DefaultTableModel) tabelaVeiculo.getModel();
      //adiciona uma linha
         dtm2.addRow(new Object[] {"912311","Gol","Paula Tejano","10/09/2012"});
      
         painel.add(consultarVeiculo);
         painel.add(consultarCliente);
         painel.add(resultado2);
         painel.add(resultado);
         painel.add(efetuarLocacao);
			painel.add(tf_buscaCli);
			painel.add(tf_buscaVeic);
			painel.add(radioCpf);
			painel.add(radioCnpj);
			painel.add(localLocacao);
			painel.add(tf_localLocacao);
			painel.add(dtLocacao);
			painel.add(tf_dtLocacao);
			painel.add(km);
			painel.add(tipoTarifa);
      
  		//Configura a posição de cada item na tela - Radio CPF
         layout.putConstraint(SpringLayout.WEST, radioCpf,20,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, radioCpf,20,SpringLayout.NORTH, painel);
			
		//Configura a posição de cada item na tela - Radio CNPJ
         layout.putConstraint(SpringLayout.WEST, radioCnpj,0,SpringLayout.WEST, radioCpf);
         layout.putConstraint(SpringLayout.NORTH, radioCnpj,20,SpringLayout.NORTH, radioCpf);
      
		//Configura a posição de cada item na tela - Text Cliente
         layout.putConstraint(SpringLayout.WEST, tf_buscaCli,100,SpringLayout.WEST, radioCpf);
         layout.putConstraint(SpringLayout.NORTH, tf_buscaCli,10,SpringLayout.NORTH, radioCpf);
			
		//Configura a posição de cada item na tela - Botao Consultar Cliente
         layout.putConstraint(SpringLayout.WEST, consultarCliente,205,SpringLayout.WEST, tf_buscaCli);
         layout.putConstraint(SpringLayout.NORTH, consultarCliente,0,SpringLayout.NORTH, tf_buscaCli);
      
      //Configura a posição de cada item na tela - tabela cliente
         layout.putConstraint(SpringLayout.WEST, resultado,17,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, resultado,40,SpringLayout.NORTH, radioCnpj);
			
				//Configura a posição de cada item na tela - Text Veiculo
         layout.putConstraint(SpringLayout.WEST, tf_buscaVeic,0,SpringLayout.WEST, tf_buscaCli);
         layout.putConstraint(SpringLayout.NORTH, tf_buscaVeic,140,SpringLayout.NORTH, resultado);
      
      //Configura a posição de cada item na tela - botao Consultar Veiculo
         layout.putConstraint(SpringLayout.WEST, consultarVeiculo,205,SpringLayout.WEST, tf_buscaVeic);
         layout.putConstraint(SpringLayout.NORTH, consultarVeiculo,0,SpringLayout.NORTH, tf_buscaVeic);
      
      //Configura a posição de cada item na tela - tabela veiculo
         layout.putConstraint(SpringLayout.WEST, resultado2,17,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, resultado2,40,SpringLayout.NORTH, tf_buscaVeic);
      
      //Configura a posição de cada item na tela - botao efetuar locação
         layout.putConstraint(SpringLayout.WEST, efetuarLocacao,205,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, efetuarLocacao,210,SpringLayout.NORTH, resultado2);
		
		//JLabels + JText
			layout.putConstraint(SpringLayout.WEST, localLocacao,17,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, localLocacao,140,SpringLayout.NORTH, resultado2);
			
			layout.putConstraint(SpringLayout.WEST, tf_localLocacao,17,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, tf_localLocacao,160,SpringLayout.NORTH, resultado2);
			
			layout.putConstraint(SpringLayout.WEST, dtLocacao,200,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, dtLocacao,140,SpringLayout.NORTH, resultado2);
			
			layout.putConstraint(SpringLayout.WEST, tf_dtLocacao,200,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, tf_dtLocacao,160,SpringLayout.NORTH, resultado2);
			
		//Configura posição do JCombo
			layout.putConstraint(SpringLayout.WEST, km,380,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, km,160,SpringLayout.NORTH, resultado2);	
			
			//Configura posição do JCombo
			layout.putConstraint(SpringLayout.WEST, tipoTarifa,380,SpringLayout.WEST, painel);
         layout.putConstraint(SpringLayout.NORTH, tipoTarifa,140,SpringLayout.NORTH, resultado2);	


			
			
      
      
      
      
         setResizable(false);
         painel.setOpaque(true);
         setContentPane(painel);
         setVisible(true);
      
     		//Fecha apenas a janela que esta aberta
         fechaJanela  fecha = new fechaJanela();
      		
      
      }
    
   
	
//--------------------Acoes-----------------------------------
	private class TrataBotao implements ActionListener
	{
	
		public void actionPerformed(ActionEvent evento){
	
		//botao pesquisar
			if(evento.getSource()==consultarVeiculo){
				
					Veiculos veiculos = new Veiculos();
					//List<Veiculos> retorno = veiculos.consultarVeiculos();
					List<Veiculos> retorno = veiculos.consultarVeiculos(tf_buscaVeic.getText()); 
					DefaultTableModel dtm = (DefaultTableModel) tabelaVeiculo.getModel();
					
					// antes de preencher, limpa todos os dados do JTable, remove linhas em branco da tabela
					while (tabelaVeiculo.getRowCount() > 0) {
						dtm.removeRow(0);
					}
					
					for (Iterator<Veiculos> it = retorno.iterator(); it.hasNext();) {
						veiculos = it.next();
						// inclui uma linha no JTable com os dados de um
						// registro retornado
						//
						dtm.addRow(new Object[] { veiculos.getNome(), veiculos.getGrupo(), veiculos.getPlaca()});
					}
		 	}
	}
}
EfetuarLocaView.java:206: error: modifier private not allowed here
	private class TrataBotao implements ActionListener
	        ^
EfetuarLocaView.java:212: error: cannot find symbol
			if(evento.getSource()==consultarVeiculo){
			                       ^
  symbol:   variable consultarVeiculo
  location: class TrataBotao
EfetuarLocaView.java:216: error: cannot find symbol
					List<Veiculos> retorno = veiculos.consultarVeiculos(tf_buscaVeic.getText()); 
					                                                    ^
  symbol:   variable tf_buscaVeic
  location: class TrataBotao
EfetuarLocaView.java:217: error: cannot find symbol
					DefaultTableModel dtm = (DefaultTableModel) tabelaVeiculo.getModel();
					                                            ^
  symbol:   variable tabelaVeiculo
  location: class TrataBotao
EfetuarLocaView.java:220: error: cannot find symbol
					while (tabelaVeiculo.getRowCount() > 0) {
					       ^
  symbol:   variable tabelaVeiculo
  location: class TrataBotao

Eu já fiz várias modificações, mas não adiantou nada…alguem poderia me ajudar com este problema?

abs

5 Respostas

M

Será que não é porque sua inner class TrataBotao esta fora do escopo da sua classe EfetuarLocaView?

Té mais.

victorrgds

não cara, esta normal…

M

Estranho… coloquei o código aqui no editor e pelo que pude ver esta assim:

public class EfetuarLocaView extends JFrame{
    /* [...] */
}

private class TrataBotao implements ActionListener  {
    /* [...] */
}

Mas não deveria ser algo mais ou menos assim?

public class EfetuarLocaView extends JFrame{
    /* [...] */
    private class TrataBotao implements ActionListener  {
        /* [...] */
    }
}

Ou provavelmente eu esteja entendendo errado.

Té mais amigo.

victorrgds

era loucura da IDE…rsrs

Recompilei a classe e foi -.-

maldito JGrasp…

Mesmo assim obrigado pela tentativa de ajuda M@C!

M

Tranquilo cara.

Que bom que o problema acabou.

Té mais.

Criado 14 de outubro de 2012
Ultima resposta 14 de out. de 2012
Respostas 5
Participantes 2