如何用按住替换点击按钮?
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。
你好,我想让我的按钮工作,只需按住它一定秒数而不是点击它,有问题的按钮只是打开一个新的 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。