TableView这是我在JavaFX/ OpenJFX的 Javadoc 中显示的示例代码的版本。(该类Person是一个记录,只读。)
package work.basil.example.jfxexample;
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.Scene;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.stage.Stage;
import java.util.List;
public class HelloApplication extends Application
{
@Override
public void start ( Stage stage )
{
TableView < Person > tableViewPersons = new TableView <> ( );
ObservableList < Person > persons = FXCollections.observableArrayList ( this.fetchPersons ( ) );
tableViewPersons.setItems ( persons );
TableColumn < Person, String > firstNameCol = new TableColumn <> ( "First Name" );
firstNameCol.setCellValueFactory ( ( TableColumn.CellDataFeatures < Person, String > p ) -> new SimpleStringProperty (p.getValue().getFirstName ()));
TableColumn < Person, String > lastNameCol = new TableColumn <> ( "Last Name" );
lastNameCol.setCellValueFactory ( ( TableColumn.CellDataFeatures < Person, String > p ) -> new SimpleStringProperty (p.getValue().getLastName ()));
List < TableColumn < Person, ? > > columns = List.of ( firstNameCol , lastNameCol ); // <--- Adding this line to make explicit the parameterized type of `TableColumn` to resolve the "Unchecked generics" warning.
tableViewPersons.getColumns ( ).setAll ( columns );
Scene scene = new Scene ( tableViewPersons , 320 , 240 );
stage.setTitle ( "JavaFX Example" );
stage.setScene ( scene );
stage.show ( );
}
private List < Person > fetchPersons ( )
{
return List.of (
new Person ( "William" , "Reed" ) ,
new Person ( "James" , "Michaelson" ) ,
new Person ( "Julius" , "Dean" ) );
}
public static void main ( String[] args )
{
launch ( );
}
}
Run Code Online (Sandbox Code Playgroud)
该应用程序呈现一个充满表格视图的窗口。调整窗口大小TableView会导致控件也调整大小,以继续填充窗口。
本例中的默认布局管理器是什么Scene?