importjavax.swing.JButton;importjavax.swing.JTextField;importjavax.swing.JFrame;importjavax.swing.JPanel;importjava.awt.event.ItemListener;importjava.awt.event.ItemEvent;importjava.awt.FlowLayout;publicclassExibirextendsJFrame{privateJTextFieldtexto;privateJButtonbotao;publicExibir(){JFramejanela=newJFrame();JPanelpainel=newJPanel();painel.setLayout(newFlowLayout(FlowLayout.CENTER,10,10));texto=newJTextField(20);painel.add(texto);botao=newJButton("Limpar");painel.add(botao);ButtonHandlerevent=newButtonHandler();botao.addItemListener(event);janela.setSize(300,100);janela.setLocation(512,430);janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);janela.setVisible(true);}privateclassButtonHandlerimplementsItemListener{privateStringnome="";publicvoidactionPerfomed(ItemEvente){texto.setText(nome);}}//End of clas.publicstaticvoidmain(Stringargs[]){newExibir();}}
Que IDE vc está usando? Eu coloquei seu código no Eclipse e ele pede para implementar o método ButtonHandler
O código ficou assim:
importjavax.swing.JButton;importjavax.swing.JTextField;importjavax.swing.JFrame;importjavax.swing.JPanel;importjava.awt.event.ItemListener;importjava.awt.event.ItemEvent;importjava.awt.FlowLayout;publicclassExibirextendsJFrame{privateJTextFieldtexto;privateJButtonbotao;publicExibir(){JFramejanela=newJFrame();JPanelpainel=newJPanel();painel.setLayout(newFlowLayout(FlowLayout.CENTER,10,10));texto=newJTextField(20);painel.add(texto);botao=newJButton("Limpar");painel.add(botao);ButtonHandlerevent=newButtonHandler();botao.addItemListener(event);janela.setSize(300,100);janela.setLocation(512,430);janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);janela.setVisible(true);}privateclassButtonHandlerimplementsItemListener{privateStringnome="";publicvoidactionPerfomed(ItemEvente){texto.setText(nome);}publicvoiditemStateChanged(ItemEvente){// TODO Auto-generated method stub}}//End of clas. publicstaticvoidmain(Stringargs[]){newExibir();}}
ViniGodoy
O problema é o que ele lhe diz. A interface ItemListener possui um método chamado itemStateChanged, não um método chamado actionPerformed.
Quem tem o actionPerformed é o ActionListener, que você registra usando o método addActionListener do botão. É a opção mais comum em JButtons.
J
java13081995
Por exemplo, o ItemListener/ItemEvent serve para JCheckBoxes , JRadioButtons e JComboBox, né ?
Então, eu adaptei meu código usando o ActionListener , só que dá o mesmo erro.
Não consigo entender
importjavax.swing.JButton;importjavax.swing.JTextField;importjavax.swing.JFrame;importjavax.swing.JPanel;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.FlowLayout;publicclassExibirextendsJFrame{privateJTextFieldtexto;privateJButtonbotao;publicExibir(){JFramejanela=newJFrame();JPanelpainel=newJPanel();painel.setLayout(newFlowLayout(FlowLayout.CENTER,10,10));texto=newJTextField(20);painel.add(texto);botao=newJButton("Limpar");painel.add(botao);ButtonHandlerevent=newButtonHandler();botao.addActionListener(event);janela.setSize(300,100);janela.setLocation(512,430);janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);janela.setVisible(true);}privateclassButtonHandlerimplementsActionListener{privateStringnome="";publicvoidactionPerfomed(ActionEvente){texto.setText(nome);}}//End of clas.publicstaticvoidmain(Stringargs[]){newExibir();}}
Eu to usando o EditPlus ._.
E
entanglement
Você comeu a letra “r” - o nome é “actionPerformed”. Está com fome? Coma um lanchinho…
E
entanglement
Eu já tive muitos problemas com esse tipo de coisas (comer letras ou trocar letras).
Conselho: use uma IDE como o Eclipse ou NetBeans.
Volta e meia eu posto uns exemplos aqui que não conseguiria fazer rapidamente sem o Eclipse.
J
java13081995
Omg :S
Então esses metodos sempre serao escritos assim qunado eu for usar um evento ?
Obrigado a todos pelas respostas ^^
marcelo.bellissimo
java13081995:
Omg :S
Então esses metodos sempre serao escritos assim qunado eu for usar um evento ?
Obrigado a todos pelas respostas ^^
Sim, devido ao uso das interfaces… quando você faz uso do implements, está fazendo uso de uma interface, e uma das características delas é a obrigatoriedade de certos métodos… cada uma “obriga” um ou mais métodos, acho que seria o caso de estudar mais á fundo como as interfaces funcionam, qual o propósito delas…
Rummenigge
Já que sua classe extende JFrame, não precisa criar outra janela dentro dela.