2013-12-16 105 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

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

相關問題