Problemas com acesso do código

2 respostas
N

Olás,

bem gostaria de acessar o minha interface dentro do meu evento como faço isso,

JComboBox comboBox_2 = new JComboBox();
		comboBox_2.setModel(new DefaultComboBoxModel(new String[] {"0", "1", "2", "3", "4", "5", "6", "7", "8", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", "50", "51", "52", "53", "54", "55", "56", "57", "58", "59"}));
		panel_2.add(comboBox_2);
					
		comboBox_2.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent e) {
				
				Aqui Dentro....
				
			}
		});

Grato.

2 Respostas

N

Bem acho que a pergunta ficou meio vaga, mas o meu problema não é acessar o combo box em si
como em…

public void actionPerformed(ActionEvent e) {
        JComboBox cb = (JComboBox)e.getSource();
        String petName = (String)cb.getSelectedItem();
        ....
    }

e sim que eu gostaria de acessar várias partes da minha interface dentro deste evento e isto eu não
estou conseguindo…

Desde já grato

ViniGodoy

Há outras formas mais fáceis e seguras das que você está usando.

A melhor forma, na minha opinião, é declarar o combo como uma propriedade, não como uma variável local. Isso é útil pois provavalmente você usará esse combo em outros trechos do seu programa.

Fica assim:

public SuaJanela extends JFrame {
    //Declare a variável fora dos métodos
    JComboBox comboBox2 = null; 

   public SuaJanela() {
        panel_2.add(getComboBox2());
   }

   //É uma boa criar um método de acesso.
   private JComboBox getComboBox2() {
      if (comboBox2 != null) return comboBox2;

      comboBox2 = new JComboBox();
      comboBox2.setModel(new DefaultComboBoxModel(
            new String[] {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
                          "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", 
                          "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", 
                          "30", "31", "32", "33", "34", "35", "36", "37", "38", "39", 
                          "40", "41", "42", "43", "44", "45", "46", "47", "48", "49", 
                          "50", "51", "52", "53", "54", "55", "56", "57", "58", "59"}));  

      comboBox_2.addActionListener(new ActionListener() {  
         @Override  
         public void actionPerformed(ActionEvent e) {  
             //Com uma propriedade, aqui vc pode acessar normalmente.
         }  
      });  

      return comboBox2;
   }
}

Nos demais trechos de código, simplesmente chame getComboBox2() para fazer o acesso a sua combo.

Criado 7 de março de 2011
Ultima resposta 8 de mar. de 2011
Respostas 2
Participantes 2