有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JToolTip的java使用

我希望使用该类,而不是调用JComponent setToolTipText方法,而是调用代码 下面不显示工具提示:

JButton btn = new JButtn("SAVE");
JToolTip tip_for_button = new JToolTip();
tip_for_button.setTipText("blah blah");
tip_for_button.setComponent(btn);

为什么


共 (2) 个答案

  1. # 1 楼答案

    因为所有捕捉鼠标事件并显示工具提示的代码都在ToolTipManager(这个类的实例是单例的,在应用程序中是唯一的),并且ToolTipManager在确定要显示的工具提示时总是调用组件上的JComponent.createToolTip()方法。因此,如果你想使用自己的工具提示,你必须重写这个方法,并编写如下内容:

    JButton btn = new JButton("SAVE"){
    
            public JToolTip createToolTip() {
               JToolTip tip_for_button = new JToolTip(){
                   public String getTipText() {
                       return "blah blah";
                   }
               };
               tip_for_button.setComponent(this);
               return tip_for_button;
           }
           };
           btn.setToolTipText("notnull");
    

    setToolTipText是必需的,否则工具提示将不显示,传递给它的文本始终设置为组件创建的工具提示,因此如果需要不可变文本,可以重写JToolTip.getTipText()

  2. # 2 楼答案

    什么是tip_for_button?为了让它发挥作用,我非常确定tip_for_button需要tip