import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Action;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class a {
public static void main(String[] args) {
ToolTipManager.sharedInstance().setDismissDelay(20000);
final JPanel panel = new JPanel();
final JButton btn1 = new JButton("显示");
panel.add(btn1);
final JButton btn2 = new JButton("隐藏");
panel.add(btn2);
final JButton btn3 = new JButton("提示按钮");
btn3.setToolTipText("button_tooltip");
panel.add(btn3);
btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
postToolTip(btn3);
}
});
btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
hideToolTip(btn3);
}
});
JFrame frame = new JFrame();
frame.setContentPane(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 400);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void postToolTip(JComponent comp) {
Action action = comp.getActionMap().get("postTip");
ActionEvent ae = new ActionEvent(comp, ActionEvent.ACTION_PERFORMED,
"postTip", EventQueue.getMostRecentEventTime(), 0);
action.actionPerformed(ae);
}
public static void hideToolTip(JComponent comp) {
Action action = comp.getActionMap().get("hideTip");
if (action == null) // no tooltip
return;
ActionEvent ae = new ActionEvent(comp, ActionEvent.ACTION_PERFORMED,
"hideTip", EventQueue.getMostRecentEventTime(), 0);
action.actionPerformed(ae);
}
}
本文介绍了一个使用Java Swing实现自定义工具提示显示和隐藏逻辑的例子。通过按钮触发,可以手动控制特定按钮工具提示的显示与隐藏,同时设置了较长的默认消失延迟。
790

被折叠的 条评论
为什么被折叠?



