2013-12-16 106 views
0

我想在按钮上显示MouseEnter事件的工具提示,但它没有显示。我不明白我的代码有什么问题。工具提示没有显示在鼠标上输入

这里是我的fxml文件,其中我使用按钮并添加MouseEnter事件。

<ToolBar fx:id="logViewerToolBar" layoutX="66.0" layoutY="9.0" opacity="1.0" prefWidth="148.0"> 
           <items> 
           <Button id="loadlogearlierbtn" fx:id="loadLogEarlierBtn" mnemonicParsing="false" mouseTransparent="true" onMouseEntered="#loadLogEarlierMouseEntered" onMouseExited="#loadLogEarlierMouseExited" prefWidth="35.0" styleClass="imgbtn" text=""> 
            <stylesheets> 
            <URL value="@main.css" /> 
            </stylesheets> 
           </Button> 
           <Button id="loadlogtadaybtn" fx:id="loadLogTodayBtn" mnemonicParsing="false" onMouseEntered="#loadLogTodayMouseEntered" onMouseExited="#loadLogTodayMouseExited" prefWidth="35.0" styleClass="imgbtn" text=""> 
            <stylesheets> 
            <URL value="@main.css" /> 
            </stylesheets> 
           </Button> 
           <Button id="searchlogbtn" fx:id="btnFind" mnemonicParsing="false" onMouseEntered="#findLogMouseEntered" onMouseExited="#findLogMouseExited" prefWidth="35.0" styleClass="imgbtn" text=""> 
            <stylesheets> 
            <URL value="@main.css" /> 
            </stylesheets> 
           </Button> 
           </items> 
          </ToolBar> 

这是我的控制器类。

@FXML 
public void findLogMouseEntered(MouseEvent event) 
{  
    btnFind.setTooltip(new Tooltip("Search field value in to entire log")); 
} 

但它仍然没有显示工具提示。当然,这真的很容易的问题,但我在javaFx新手。

我也很喜欢

@FXML 
private Button loadLogEarlierBtn,loadLogTodayBtn,btnFind;  

即使下面的方式行不通链接按钮。

<Button id="searchlogbtn" fx:id="btnFind" mnemonicParsing="false" prefWidth="35.0" styleClass="imgbtn" text=""> 
            <tooltip> 
             <Tooltip text="Search field value in to entire log"/> 
            </tooltip> 
            <stylesheets> 
            <URL value="@main.css" /> 
            </stylesheets> 

           </Button> 

请给我提示或参考。

回答

0

不太确定,但我认为加入title="here goes the title"应该可以做到。

希望这有助于

1

要么把setTooltip(...)在initialize(...)方法,或初始化FXML工具提示。

编辑:这是一个完整的例子:

import java.io.IOException; 

import javafx.application.Application; 
import javafx.fxml.FXMLLoader; 
import javafx.scene.Parent; 
import javafx.scene.Scene; 
import javafx.stage.Stage; 

public class ButtonWithTooltipExample extends Application { 

    @Override 
    public void start(Stage primaryStage) throws IOException { 
     Scene scene = new Scene(FXMLLoader.<Parent>load(getClass().getResource("ButtonWithTooltip.fxml")), 200, 100); 
     primaryStage.setScene(scene); 
     primaryStage.show(); 
    } 

    public static void main(String[] args) { 
     launch(args); 
    } 
} 

ButtonWithTooltip.fxml

<?xml version="1.0" encoding="UTF-8"?> 

<?import javafx.scene.layout.BorderPane?> 
<?import javafx.scene.control.Button?> 
<?import javafx.scene.control.Tooltip?> 

<BorderPane xmlns:fx="http://javafx.com/fxml"> 
    <center> 
     <Button text="Click Me"> 
      <tooltip> 
       <Tooltip text="This is a button. Click on it."/> 
      </tooltip> 
     </Button> 
    </center> 
</BorderPane> 

你不需要onMouseEntered或onMouseExited - 工具提示注意到了这一问题。

+0

不工作... :-( –

+0

看到我更新的问题 –

+0

更新了一个完整的例子,它工作正常。 –

相关问题