gpt4 book ai didi

java - 如何禁用JComponents进程

转载 作者:行者123 更新时间:2023-12-01 12:20:05 26 4
gpt4 key购买 nike

savebtn.setEnabled(false);

使用上面的代码我禁用了保存按钮。但是当我单击该按钮时,保存过程将起作用。如何在单击禁用按钮时停止该过程。

最佳答案

如果您使用 setEnabled(false) 禁用 JButton,则其已注册 ActionListener单击按钮时不会调用 s。

但是,如果您添加 MouseListener使用 addMouseListener() 方法添加到它,即使按钮被禁用,注册的 MouseListener 仍然会被调用。

您应该注册一个 ActionListener 来完成按下/单击按钮时所需的工作。这样,如果您禁用该按钮,则单击该按钮时将不会调用 ActionListener

看下面的例子:如果你点击按钮,它只会打印“clicked”,但不会打印“action returned”

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

关于java - 如何禁用JComponents进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26730018/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com