如果他们点击禁用的按钮JAVA,是否可以提示用户输入错误消息

时间:2014-02-12 18:05:17

标签: java swing jbutton actionlistener

如果用户单击已禁用的按钮,则可以提示用户输入错误消息。 e.g。

   JButton button = new JButton();
   button.addActionListener(this);
   public void actionPerformed(ActionEvent e) {

   if(buttonClicked.getSource()== button){
    button.setEnabled(false);
   }
   }

现在,当用户点击按钮时,一旦禁用按钮并且用户再次单击该按钮,该按钮就会被禁用,我想要弹出一条错误消息,说“你不能再点击我了”

1 个答案:

答案 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);