Skip to content

Instantly share code, notes, and snippets.

@sharifulislam52
Last active April 15, 2023 12:29
Show Gist options
  • Save sharifulislam52/d17b4e1654a8214046d409b0a7d63c3b to your computer and use it in GitHub Desktop.
Save sharifulislam52/d17b4e1654a8214046d409b0a7d63c3b to your computer and use it in GitHub Desktop.
javafx : TableView Example
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.stage.Stage;
import javafx.scene.Parent;
import javafx.scene.Scene;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
try {
Parent root = FXMLLoader.load(getClass().getResource("Main.fxml"));
Scene scene = new Scene(root,500,300);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene);
primaryStage.show();
} catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
launch(args);
}
}
public class Students {
private final int id;
private final String name;
private final String surname;
private final int age;
public Students(int id, String name, String surname, int age) {
super();
this.id = id;
this.name = name;
this.surname = surname;
this.age = age;
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getSurname() {
return surname;
}
public int getAge() {
return age;
}
}
package application;
import java.net.URL;
import java.util.ResourceBundle;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.fxml.FXML;
import javafx.fxml.Initializable;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
public class MainController implements Initializable {
@FXML private TableView<Students> table;
@FXML private TableColumn<Students, Integer> id;
@FXML private TableColumn<Students, String> name;
@FXML private TableColumn<Students, String> surname;
@FXML private TableColumn<Students, Integer> age;
public ObservableList<Students> list = FXCollections.observableArrayList(
new Students(1, "Nava", "nava", 2),
new Students(2, "Fahim", "fahim", 9),
new Students(3, "Shariful", "Islam", 25)
);
@Override
public void initialize(URL arg0, ResourceBundle arg1) {
id.setCellValueFactory(new PropertyValueFactory<Students, Integer>("id"));
name.setCellValueFactory(new PropertyValueFactory<Students, String>("name"));
surname.setCellValueFactory(new PropertyValueFactory<Students, String>("surname"));
age.setCellValueFactory(new PropertyValueFactory<Students, Integer>("age"));
table.setItems(list);
}
}
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.scene.control.TableColumn?>
<?import javafx.scene.control.TableView?>
<?import javafx.scene.layout.AnchorPane?>
<AnchorPane minHeight="300.0" prefWidth="500.0" xmlns="http://javafx.com/javafx/9.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="application.MainController">
<children>
<TableView fx:id="table" layoutX="14.0" layoutY="14.0" prefHeight="300.0" prefWidth="500.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<columns>
<TableColumn fx:id="id" prefWidth="75.0" text="ID" />
<TableColumn fx:id="name" prefWidth="75.0" text="Name" />
<TableColumn fx:id="surname" prefWidth="75.0" text="Surname" />
<TableColumn fx:id="age" prefWidth="75.0" text="Age" />
</columns>
</TableView>
</children>
</AnchorPane>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment