Javafx 2 在JavaFX2.2中,如何为输入字段和表格标题中输入的文本设置字体大小?
在我的JavaFX2.2FXML程序中,我发现字体不能正确缩放。因此,表头和输入数据字段的大小不成比例 有没有办法为输入字段中输入的文本设置字体大小 有没有办法为表格标题中显示的文本设置字体大小 SCCEJavafx 2 在JavaFX2.2中,如何为输入字段和表格标题中输入的文本设置字体大小?,javafx-2,Javafx 2,在我的JavaFX2.2FXML程序中,我发现字体不能正确缩放。因此,表头和输入数据字段的大小不成比例 有没有办法为输入字段中输入的文本设置字体大小 有没有办法为表格标题中显示的文本设置字体大小 SCCE <?xml version="1.0" encoding="UTF-8"?> <?import java.lang.*?> <?import java.util.*?> <?import javafx.scene.*?> <?impor
<?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);
}
}
输入文本字段。看看我有多大!!!
/*
*要更改此模板,请选择工具|模板
*然后在编辑器中打开模板。
*/
包fxmltableview;
导入javafx.beans.property.SimpleStringProperty;
公共阶层人士{
private final SimpleStringProperty firstName=新SimpleStringProperty(“”);
private final SimpleStringProperty lastName=新SimpleStringProperty(“”);
private final SimpleStringProperty电子邮件=新SimpleStringProperty(“”);
公众人士(){
这个(“,”,“);
}
公众人物(stringfirstname、stringlastname、stringemail){
setFirstName(firstName);
setLastName(lastName);
设置电子邮件(电子邮件);
}
公共字符串getFirstName(){
返回firstName.get();
}
public void setFirstName(字符串fName){
firstName.set(fName);
}
公共字符串getLastName(){
返回lastName.get();
}
public void setLastName(字符串fName){
lastName.set(fName);
}
公共字符串getPrimary(){
返回getEmail();
}
公共字符串getSecondary(){
返回getEmail();
}
公共字符串getEmail(){
返回email.get();
}
public void setEmail(字符串fName){
email.set(fName);
}
}
公共类FXMLTableViewController实现可初始化{
@FXML
自有品牌;
@FXML
私有无效把手按钮操作(ActionEvent事件){
System.out.println(“你点击了我!”);
label.setText(“你好,世界!”);
}
@凌驾
公共void初始化(URL、ResourceBundle rb){
//待办事项
}
}
包fxmltableview;
导入javafx.application.application;
导入javafx.fxml.fxmloader;
导入javafx.scene.Parent;
导入javafx.scene.scene;
导入javafx.stage.stage;
/**
*
*@作者
*/
公共类FXMLTableView扩展了应用程序{
@凌驾
public void start(Stage primaryStage)引发异常{
setTitle(“FXML TableView示例”);
初级阶段
((场景)FXMLLoader.load(getClass().getResource(“fxml_tableview.fxml”));
primaryStage.show();
}
/**
*在正确部署的JavaFX应用程序中忽略main()方法。
*main()仅在应用程序无法运行时用作回退
*通过部署工件启动,例如在具有有限FX的IDE中
*support.NetBeans忽略main()。
*
*@param指定命令行参数
*/
公共静态void main(字符串[]args){
发射(args);
}
}
我渐渐地找到了这些有用的文章
所以我
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>
您可以覆盖CSS文件中相应控件的
-fx字体大小
。您是否可以提供sscce。这实际上不是一个简短的、自包含的、正确的(可编译的),Example@gontard你是对的,我道歉。我已经添加了SCCE。@assylias谢谢你的提示-它帮助解决了问题!例如,对于较大的字体,您可以使用相对数1.2em
,而不是给出绝对大小,对于较小的字体,您可以使用相对数0.8em
。因此,如果更改默认字体,它将相应地进行调整。
<stylesheets>
<URL value="@tffontsize.css" />
</stylesheets>
.text-field {
-fx-font-size: 12pt;
}
.table-view .column-header{
-fx-font-size: 14;
}
.table-cell {
-fx-font-size: 12px;
}