ActionEvent не появится
У меня проблема в моей программе. Вот мой код:
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;`
public class click_rep extends JFrame{`
public click_rep(){
super("CLICK");
final JButton btn1 = new JButton("CLICK HERE");
final JLabel label = new JLabel();
FlowLayout flo = new FlowLayout();
setLayout(flo);
add(btn1);
setSize(315,120);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try{
String command = e.getActionCommand();
if (command.equals(btn1)){
label.setText("CLICK");
setVisible(true);
}
}catch(Exception e1){
e1.printStackTrace();
}
}
});
}
public static void main(String[] a){
click_rep cp = new click_rep();
}
}
Моя проблема в том, что ActionEvent не появится. Что я сделаю, чтобы появился ActionEvent?
Надеюсь, кто-нибудь может мне помочь. Спасибо за помощь.
1 ответ
Присмотритесь к этому...
String command = e.getActionCommand();
if (command.equals(btn1)){
command
это String
а также btn1
это JButton
когда они могут быть когда-либо equal
?
Есть несколько способов исправить это, например, сделать что-то вроде этого...
if ("CLICK HERE".equals(command)) {
Или как то так...
if (e.getSource() == btn1) {
Но я предпочитаю первый...
Но, потому что ActionListener
зарегистрированный слушатель btn1
источник события никогда не может быть ничем иным btn1
Таким образом, вы могли бы просто сделать что-то подобное вместо этого...
btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
label.setText("CLICK");
// Not sure what this is meant for, as the component
// must already be visible in order for the user to
// activate the button...
setVisible(true);
}
});