savebtn.setEnabled(false);
使用上面的代码我禁用了我的保存按钮。但是当我点击该按钮时,保存过程将起作用。单击禁用按钮时如何停止该过程。
答案 0 :(得分:1)
如果您使用JButton
停用setEnabled(false)
,则点击该按钮时不会调用其注册的ActionListener
。
但是,如果您使用addMouseListener()
方法向其添加了MouseListener
,即使该按钮被停用,仍会调用已注册的MouseListener
。
您应该注册ActionListener
来执行按下/单击按钮时所需的作业。这样,如果您禁用该按钮,则单击该按钮将不会调用ActionListener
。
请参阅以下示例:如果您点击该按钮,它只会打印"clicked"
,但不会打印"action performed"
。
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton b = new JButton("Test");
b.setEnabled(false);
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("action performed");
}
});
b.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
System.out.println("clicked");
}
});
f.add(b);
f.pack();
f.setVisible(true);
如果删除b.setEnabled(false);
行,则单击按钮输出将为:
clicked
action performed