javafx-2 – 在JavaFX2.2中,如何设置输入字段和表头中输入的文本
发布时间:2020-12-15 00:54:32 所属栏目:Java 来源:网络整理
导读:在我的 JavaFX2.2 fxml程序中,我发现字体无法正确扩展.结果,表头和输入数据字段不成比例地大. 有没有办法设置输入字段中输入的文本的字体大小? 有没有办法设置表头中显示的文本的字体大小? SCCE ?xml version="1.0" encoding="UTF-8"??import java.lang.*?
在我的
JavaFX2.2 fxml程序中,我发现字体无法正确扩展.结果,表头和输入数据字段不成比例地大.
有没有办法设置输入字段中输入的文本的字体大小? 有没有办法设置表头中显示的文本的字体大小? SCCE <?xml version="1.0" encoding="UTF-8"?> <?import java.lang.*?> <?import java.util.*?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.geometry.Insets?> <?import javafx.scene.control.cell.*?> <?import javafx.collections.*?> <?import fxmltableview.*?> <?import java.lang.*?> <?import java.util.*?> <?import javafx.collections.*?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.paint.*?> <?import javafx.scene.text.*?> <?import javafx.collections.*?> <?import java.lang.*?> <?import fxmltableview.Person?> <Scene xmlns:fx="http://javafx.com/fxml" > <GridPane alignment="center" hgap="10" vgap="10"> <padding> <Insets top="10" right="10" bottom="10" left="10"/> </padding> <Label text="Address Book: This text is in font size 12 on Win7" GridPane.columnIndex="0" GridPane.rowIndex="0"> <font> <Font size="12.0"/> </font> </Label> <TextField fx:id="textField" GridPane.columnIndex="0" GridPane.rowIndex="1"> input text field. See how large I am!!! </TextField> <TableView GridPane.columnIndex="0" GridPane.rowIndex="2"> <columns> <TableColumn text="First Name"> <cellValueFactory> <PropertyValueFactory property="firstName" /> </cellValueFactory> </TableColumn> <TableColumn text="Last Name"> <cellValueFactory> <PropertyValueFactory property="lastName" /> </cellValueFactory> </TableColumn> <TableColumn text="Email Address"> <cellValueFactory> <PropertyValueFactory property="email" /> </cellValueFactory> </TableColumn> </columns> <items> <FXCollections fx:factory="observableArrayList"> <Person firstName="Jacob" lastName="Smith" email="jacob.smith@example.com"/> <Person firstName="Isabella" lastName="Johnson" email="isabella.johnson@example.com"/> <Person firstName="Ethan" lastName="Williams" email="ethan.williams@example.com"/> <Person firstName="Emma" lastName="Jones" email="emma.jones@example.com"/> <Person firstName="Michael" lastName="Brown" email="michael.brown@example.com"/> </FXCollections> </items> </TableView> </GridPane> </Scene> /* * To change this template,choose Tools | Templates * and open the template in the editor. */ package fxmltableview; import javafx.beans.property.SimpleStringProperty; public class Person { private final SimpleStringProperty firstName = new SimpleStringProperty(""); private final SimpleStringProperty lastName = new SimpleStringProperty(""); private final SimpleStringProperty email = new SimpleStringProperty(""); public Person() { this("","",""); } public Person(String firstName,String lastName,String email) { setFirstName(firstName); setLastName(lastName); setEmail(email); } public String getFirstName() { return firstName.get(); } public void setFirstName(String fName) { firstName.set(fName); } public String getLastName() { return lastName.get(); } public void setLastName(String fName) { lastName.set(fName); } public String getPrimary() { return getEmail(); } public String getSecondary() { return getEmail(); } public String getEmail() { return email.get(); } public void setEmail(String fName) { email.set(fName); } } public class FXMLTableViewController implements Initializable { @FXML private Label label; @FXML private void handleButtonAction(ActionEvent event) { System.out.println("You clicked me!"); label.setText("Hello World!"); } @Override public void initialize(URL url,ResourceBundle rb) { // TODO } } package fxmltableview; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; /** * * @author */ public class FXMLTableView extends Application { @Override public void start(Stage primaryStage) throws Exception { primaryStage.setTitle("FXML TableView Example"); primaryStage.setScene ((Scene)FXMLLoader.load(getClass().getResource("fxml_tableview.fxml"))); primaryStage.show(); } /** * The main() method is ignored in correctly deployed JavaFX application. * main() serves only as fallback in case the application can not be * launched through deployment artifacts,e.g.,in IDEs with limited FX * support. NetBeans ignores main(). * * @param args the command line arguments */ public static void main(String[] args) { launch(args); } } 解决方法
我在
Marco和
Rob之前找到了这些有用的文章
所以我 1)手动更改表格列的宽度 <TableColumn text="First Name" prefWidth="90" > <cellValueFactory> <PropertyValueFactory property="firstName" /> </cellValueFactory> </TableColumn> <TableColumn text="Last Name" prefWidth="90" > <cellValueFactory> <PropertyValueFactory property="lastName" /> </cellValueFactory> </TableColumn> 2)在fxml文件中添加了一个链接 <stylesheets> <URL value="@tffontsize.css" /> </stylesheets> 3)创建了一个css文件tfffontsize.css .text-field { -fx-font-size: 12pt; } .table-view .column-header{ -fx-font-size: 14; } .table-cell { -fx-font-size: 12px; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |