如何用按住替换点击按钮?

How to replace click button with hold?

你好,我想让我的按钮工作,只需按住它一定秒数而不是点击它,有问题的按钮只是打开一个新的 JFrame,

 button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                frame.dispose();
                new SecondFrame();
            }
        });

谢谢,

根据Codebender的建议,您可以使用MouseListener instead.Which have mousePressed() and mouseReleased() methods.I have calculated the time by currentTimeMillis()在每个连续的 press/release.

之间
JFrame f = new JFrame();
JButton b = new JButton();
f.add(b);
f.pack();
f.setVisible(true);
b.addMouseListener(new MouseListener() {
    long start_time, stop_time;
    @Override
    public void mouseClicked(MouseEvent e) {}

    @Override
    public void mousePressed(MouseEvent e) {
        start_time = System.currentTimeMillis();
        System.out.println("" + start_time);
    }

    @Override
    public void mouseReleased(MouseEvent e) {
        stop_time = System.currentTimeMillis();
        System.out.println("" + stop_time);
        if (stop_time - start_time > 1000) {
            new JFrame().setVisible(true);
        }
    }

    @Override
    public void mouseEntered(MouseEvent e) {}

    @Override
    public void mouseExited(MouseEvent e) {}
}); 

您可以增加或减少给定的 time.Also 查看 MouseAdapter