JavaFX UI控件教程(二十一)之Tooltip
翻譯自??Tooltip
在本章中,您將了解工具提示,即當鼠標光標懸停該控件時,可以為任何UI控件設置的控件。
的Tooltip類表示通常用于顯示關于所述用戶接口的控制附加信息的公共UI組件。可以通過調用setTooltip方法在任何控件上設置工具提示。
工具提示有兩種不同的狀態:激活和顯示。激活工具提示后,鼠標移動到控件上。當工具提示處于顯示狀態時,它實際上會出現。顯示的工具提示也被激活。工具提示激活時和實際顯示之間通常會有一些延遲。
帶有工具提示的密碼字段如圖20-1所示。
圖20-1添加到密碼字段的工具提示
?
創建工具提示
研究示例20-1中的代碼片段,該代碼片段使用上圖所示的JavaFX應用程序中的工具提示創建密碼字段。
示例20-1在密碼字段中添加工具提示
final PasswordField pf = new PasswordField(); final Tooltip tooltip = new Tooltip(); tooltip.setText("\nYour password must be\n" +"at least 8 characters in length\n" + ); pf.setTooltip(tooltip);javafx.scene.control包中的每個UI控件都有setTooltip添加工具提示的方法。您可以在Tooltip構造函數中或使用該setText方法定義文本標題。
由于Tooltip該類是類的擴展,因此Labeled您不僅可以添加文本標題,還可以添加圖形圖標。例20-2中的代碼片段在密碼字段的工具提示中添加了一個圖標。
示例20-2在工具提示中添加圖標
Image image = new Image(getClass().getResourceAsStream("warn.png") ); tooltip.setGraphic(new ImageView(image));將此代碼片段添加到應用程序并編譯并運行代碼后,將顯示圖20-2中所示的工具提示。
圖20-2帶圖標的工具提示
工具提示不僅可以包含附加信息或輔助信息,還可以包含數據。
?
在工具提示中顯示應用程序數據
圖20-3中的應用程序使用工具提示中顯示的信息來計算酒店住宿的總成本
圖20-3計算酒店價格
每個復選框都附有工具提示。每個工具提示都會顯示特定預訂選項的費率。如果用戶選中復選框,則會將相應的值添加到總計。如果取消選中所選復選框,則會從總計中扣除相應的值。
查看例20-3中顯示的應用程序的源代碼。
示例20-3使用工具提示計算酒店價格
import javafx.application.Application; import javafx.beans.value.ChangeListener; import javafx.beans.value.ObservableValue; import javafx.geometry.Insets; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.CheckBox; import javafx.scene.control.Label; import javafx.scene.control.Tooltip; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; import javafx.scene.text.Font; import javafx.stage.Stage;public class Main extends Application {final static String[] rooms = new String[]{"Accommodation (BB)","Half Board","Late Check-out","Extra Bed"};final static Integer[] rates = new Integer[]{100, 20, 10, 30};final CheckBox[] cbs = new CheckBox[rooms.length];final Label total = new Label("Total: $0");Integer sum = 0;public static void main(String[] args) {launch(args);}@Overridepublic void start(Stage stage) {Scene scene = new Scene(new Group());stage.setTitle("Tooltip Sample");stage.setWidth(300);stage.setHeight(150);total.setFont(new Font("Arial", 20));for (int i = 0; i < rooms.length; i++) {final CheckBox cb = cbs[i] = new CheckBox(rooms[i]);final Integer rate = rates[i];final Tooltip tooltip = new Tooltip("$" + rates[i].toString());tooltip.setFont(new Font("Arial", 16));cb.setTooltip(tooltip);cb.selectedProperty().addListener(new ChangeListener<Boolean>() {public void changed(ObservableValue<? extends Boolean> ov,Boolean old_val, Boolean new_val) {if (cb.isSelected()) {sum = sum + rate;} else {sum = sum - rate;}total.setText("Total: $" + sum.toString());}});}VBox vbox = new VBox();vbox.getChildren().addAll(cbs);vbox.setSpacing(5);HBox root = new HBox();root.getChildren().add(vbox);root.getChildren().add(total);root.setSpacing(40);root.setPadding(new Insets(20, 10, 10, 20));((Group) scene.getRoot()).getChildren().add(root);stage.setScene(scene);stage.show();} }中的代碼行實施例20-4在用實施例20-3創建工具提示和分配文本字幕到它。該Integer期權價格的值轉換成String數值。
示例20-4設置工具提示的值
final Tooltip tooltip = new Tooltip("$" + rates[i].toString())您可以通過應用CSS來改變工具提示的視覺外觀。
?
相關的API文檔?
-
Tooltip
-
Labeled
總結
以上是生活随笔為你收集整理的JavaFX UI控件教程(二十一)之Tooltip的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JavaFX UI控件教程(二十)之HT
- 下一篇: java美元兑换,(Java实现) 美元