내 프로그램에서 동일한 문제가 발생했으며이를 수정했습니다.
TableView
은 CONSTRAINED_RESIZE_POLICY
으로 둡니다. 그런 다음 TableColumn
에서 특정 width
을 원할 경우 max
, min
및 pref
크기를 같은 크기로 설정하십시오. 이렇게하면 크기가 더 크지 않고 크기보다 작아집니다.
편집 1 :
그것으로 주위를 연주 후, 나는이 적절한를 할당합니다 당신은, 당신이 원하는 어떤 크기 당신의 TableColumn
에의 max width
을 설정해야 결정했습니다 공간을 테이블 헤더에, 아래 예제에서는 여전히 작동합니다. 아래
예 :
Environment.fxml
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.BorderPane?>
<BorderPane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8.0.91" xmlns:fx="http://javafx.com/fxml/1">
<center>
<TableView prefHeight="200.0" prefWidth="200.0" BorderPane.alignment="CENTER">
<columns>
<TableColumn prefWidth="75.0" text="First Name" />
<TableColumn prefWidth="75.0" text="Last Name" />
<TableColumn prefWidth="75.0" text="Email Address" />
<TableColumn maxWidth="50.0" minWidth="50.0" prefWidth="50.0" text="Age" />
<TableColumn maxWidth="50.0" minWidth="50.0" prefWidth="50.0" text="Height" />
</columns>
<columnResizePolicy>
<TableView fx:constant="CONSTRAINED_RESIZE_POLICY" />
</columnResizePolicy>
</TableView>
</center>
</BorderPane>
홈페이지. 위 예에서 fxml
파일은 fxml
디렉토리에 있습니다. 이를 위해 코드를 조정하십시오.
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import java.io.IOException;
public class Main extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws IOException {
FXMLLoader loader = new FXMLLoader(getClass().getClassLoader().getResource("fxml/Environment.fxml"));
Parent root = loader.load();
Scene scene = new Scene(root,800,800);
primaryStage.setScene(scene);
primaryStage.show();
}
}