JavaFX UI控件教程(三)之Label
翻譯自??Label
本章介紹如何使用Label駐留在javafx.scene.controlJavaFX API包中的類來顯示文本元素。了解如何包裝文本元素以適合特定空間,添加圖形圖像或應用視覺效果。
圖2-1顯示了三種常見的標簽用法。左側的標簽是帶有圖像的文本元素,中間的標簽表示旋轉的文本,右側的標簽呈現包裝的文本。
圖2-1帶標簽的示例應用程序
?
創建標簽
JavaFX API提供了三個Label類的構造函數,用于在應用程序中創建標簽,如例2-1所示。
示例2-1創建標簽
//An empty label Label label1 = new Label(); //A label with the text element Label label2 = new Label("Search"); //A label with the text element and graphical icon Image image = new Image(getClass().getResourceAsStream("labels.jpg")); Label label3 = new Label("Search", new ImageView(image));在代碼中創建標簽后,可以使用以下Labeled類的方法向其中添加文本和圖形內容。
-
該setText(String text)方法-指定標簽文本標題
-
setGraphic(Node graphic)- 指定圖形圖標
該setTextFill方法指定繪制標簽文本元素的顏色。研究例2-2。它會創建一個文本標簽,為其添加一個圖標,并指定文本的填充顏色。
示例2-2向標簽添加圖標和文本填充
Label label1 = new Label("Search"); Image image = new Image(getClass().getResourceAsStream("labels.jpg")); label1.setGraphic(new ImageView(image)); label1.setTextFill(Color.web("#0076a3"));將此代碼片段添加到應用程序時,會生成如圖2-2所示的標簽。
圖2-2帶圖標的標簽
為按鈕定義文本和圖形內容時,可以使用該setGraphicTextGap方法設置它們之間的間隙。
此外,您可以使用該setTextAlignment方法更改其布局區域內標簽內容的位置。還可以通過施加限定的圖形相對于所述文本的位置setContentDisplay的方法和指定以下之一ContentDisplay:常數LFFT,RIGHT,CENTER,TOP,BOTTOM。
設置字體
比較圖2-1和圖2-2中的搜索標簽。請注意,圖2-1中的標簽具有更大的字體大小。這是因為示例2-2中顯示的代碼片段未指定標簽的任何字體設置。它使用默認字體大小呈現。
要提供標簽默認值以外的字體文本大小,請使用類的setFont方法Labeled。示例2-3中的代碼片段將label1文本的大小設置為30磅,將字體名稱設置為Arial。對于label2,將文本大小設置為32磅,將字體名稱設置為Cambria。
示例2-3應用字體設置
//Use a constructor of the Font class label1.setFont(new Font("Arial", 30)); //Use the font method of the Font class label2.setFont(Font.font("Cambria", 32));
文字換行
創建標簽時,有時您必須將其放入小于您需要渲染的空間內。要拆分(換行)文本以使其適合布局區域,請設置方法的true值setWrapText,如示例2-4所示。
示例2-4啟用文本環繞
Label label3 = new Label("A label that needs to be wrapped"); label3.setWrapText(true);將label3添加到應用程序的內容時,將呈現如圖2-3所示的內容。
圖2-3帶有文本換行的標簽
假設標簽的布局區域不僅受其寬度的限制,還受其高度的限制。當無法呈現整個必需的文本字符串時,您可以指定標簽的行為。使用類的setTextOverrun方法Labeled和其中一種可用OverrunStyle類型來定義如何處理無法正確呈現的文本字符串部分。有關OverrunStyle類型的更多信息,請參閱API文檔。
應用效果
雖然標簽是靜態內容且無法編輯,但您可以對其應用視覺效果或變換。例2-5中的代碼片段將label2旋轉270度并垂直平移其位置。
例2-5旋轉標簽
Label label2 = new Label ("Values"); label2.setFont(new Font("Cambria", 32)); label2.setRotate(270); label2.setTranslateY(50);旋轉和轉換是JavaFX API中可用的典型轉換。此外,您可以設置一種效果,當用戶將鼠標光標懸停在標簽上時,該效果可以縮放(放大)標簽。
例2-6中顯示的代碼片段將縮放效果應用于label3。在MOUSE_ENTERED標簽上觸發事件時,為setScaleX和setScaleY方法設置比例因子1.5?。當用戶將鼠標光標移出標簽并MOUSE_EXITED發生事件時,比例因子將設置為1.0,并且標簽將以其原始大小呈現。
例2-6應用縮放效果
label3.setOnMouseEntered(new EventHandler<MouseEvent>() {@Override public void handle(MouseEvent e) {label3.setScaleX(1.5);label3.setScaleY(1.5);} });label3.setOnMouseExited(new EventHandler<MouseEvent>() {@Override public void handle(MouseEvent e) {label3.setScaleX(1);label3.setScaleY(1);} });圖2-4顯示了label3的兩種狀態。
圖2-4縮放標簽
?
相關的API文檔 ?
-
Label
-
Labeled
總結
以上是生活随笔為你收集整理的JavaFX UI控件教程(三)之Label的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 24 期免息 + 赠一年延长保:小米 1
- 下一篇: JavaFX UI控件教程(四)之But