挨拶、
setDissmissDelay()
メソッドを複数回設定したい。しかし、特定の値を何度も設定することはできませんでした。また、無限ループを使用しようとしましたが、オーバーライドしようとしました (ToolTipManager コンストラクターはデフォルトの修飾子にあります)。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();
}
});
}
}
これを案内してください。