如果用户单击已禁用的按钮,则可以提示用户输入错误消息。 e.g。
JButton button = new JButton();
button.addActionListener(this);
public void actionPerformed(ActionEvent e) {
if(buttonClicked.getSource()== button){
button.setEnabled(false);
}
}
现在,当用户点击按钮时,一旦禁用按钮并且用户再次单击该按钮,该按钮就会被禁用,我想要弹出一条错误消息,说“你不能再点击我了”
答案 0 :(得分:3)
即使组件已禁用但可见,鼠标侦听器也能正常工作。您可以尝试使用
之类的东西button.addMouseListener(new MouseAdapter() {// MouseAdapter is empty implementation
// of MouseListener
@Override
public void mouseClicked(MouseEvent e) {
JButton b = (JButton) e.getSource();
if (!b.isEnabled())
System.out.println("you cannot click me again");
}
});
以下是更完整代码的小例子
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 300);
final AtomicBoolean justEnabled = new AtomicBoolean(false);
final JButton button = new JButton("click");
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
JButton b = (JButton) e.getSource();
if (!b.isEnabled())
if (justEnabled.get())
justEnabled.set(false);
else
System.out.println("you cannot click me again");
}
});
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JButton b = (JButton) e.getSource();
b.setEnabled(false);
justEnabled.set(true);
}
});
JButton enabler = new JButton("enable");
enabler.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
button.setEnabled(true);
}
});
frame.setLayout(new FlowLayout());
frame.add(button);
frame.add(enabler);
frame.setVisible(true);