java - e.getActionCommand() 不起作用?

标签 java swing events awt actionlistener

我试图做一些简单的事情来编辑文本,但我的按钮不起作用...... 我有一个

public void actionPerformed(ActionEvent e) {
    if(e.getActionCommand().equals(submit.getActionCommand())){
        JOptionPane.showMessageDialog(null,"you tried to submit");
    }
}

方法,但似乎不起作用。请帮忙?

public class Editor implements ActionListener{

static JFrame frame = new JFrame();
static Container contentPane = frame.getContentPane();

static int line;
static JTextField lineNumber = new JTextField("Line number here");
static JTextField editField = new JTextField("Data here", 48);
static JButton submit = new JButton("Save");

public Editor(){
    frame.setTitle("Editor (Lnull)");
    frame.setSize(400,600);
    frame.setVisible(true);
}

public Editor(String title){
    frame.setTitle(title);
    frame.setSize(400,600);
    frame.setVisible(true);
}

public Editor(String title, int width, int height){
    frame.setTitle(title);
    frame.setSize(width, height);
    frame.setVisible(true);
}

@SuppressWarnings("static-access")
public void setLine(int line){
    this.line = line;
}

public void changeTitle(String title){
    frame.setTitle(title);
}

public static void addComponent(Component thing){
    contentPane.add(thing);
    frame.repaint();
}

public static void setContentsOfFrame(Container cont){
    frame.setContentPane(contentPane);
}

public static void setAction(JButton comp, String action){
    comp.setActionCommand(action);
}

public void actionPerformed(ActionEvent e) {
    if(e.getActionCommand().equals(submit.getActionCommand())){
        JOptionPane.showMessageDialog(null,"you tried to submit");
    }
}


/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Editor editor = new Editor();
    addComponent(editField);
    editField.setBounds(0,0,300,50);
    addComponent(submit);
    submit.setBounds(300,0,100,50);
    submit.setActionCommand("submit");
    frame.setLayout(null);

    setContentsOfFrame(contentPane);

}

}

最佳答案

您永远不会将 ActionListener 附加到 submit 按钮。

如果您不注册,Swing 无法发送事件通知

尝试类似 submit.addActionListener(editor)

关于java - e.getActionCommand() 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14473891/

相关文章:

java - 线程 hibernate 直到收到另一个类的通知

java事件和监听器,执行不好?

javascript - 将单击事件分配给 Image 对象

java - 使用 JSONObject 构建 JSON 时如何嵌套对象

java - 从链表中删除重复元素 - Java

java - 具有 ActionListener 和 DocumentListener 的 JTextField

从 JRE 7 或 8 升级到 JRE11 后,Java Swing JFrame 大小不同。如何使帧大小一致?

ios - 发生 NSNotification 时如何更改 UILabel 属性

Java 8 optional 添加仅当 optional.isPresent 时才返回结果

java - JPA 和 Hibernate 中的 N+1 问题的解决方案是什么?