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); 
    }

});
Другие вопросы по тегам