问候语,
我想多次设置setDissmissDelay()
方法。但我无法一次又一次地将其设置为特定值。我也尝试使用无限循环,试图覆盖(ToolTipManager Constructor是默认修饰符)。我确信代码工作正常,因为我可以看到它在控制台中打印e.getsource()
。我试图解决某人(This Question)提出的这个问题,而在解决这个问题的时候我却难以理解。这背后的原因是什么?如果我可以设置值怎么样?还有其他方法可以达到这个目的吗?
这是我的代码段:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.*;
public class Hello {
static JButton button;
private static void createAndShowGUI() {
JFrame frame = new JFrame("HelloWorldSwing");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
button = new JButton("Hello World");
button.setToolTipText("Its a tool tip Experiment!");
frame.getContentPane().add(button);
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseEntered(MouseEvent e) {
if (e.getSource() == button) {
ActionListener tt = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ToolTipManager.sharedInstance().setDismissDelay(
1000);
System.out.println(e.getSource());
}
};
new Timer(100, tt).start();
}
}
});
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
请指导我。
答案 0 :(得分:1)
调用setDismissDelay()
是一个全局设置,用于指示工具提示在删除之前应保留多长时间。它不会重置当前工具提示被删除之前的时间。正如您在链接问题中所建议的那样,一劳永逸地解除延迟,Integer.MAX_VALUE
应该可以解决问题。