JAVA FX
TableView
업데이트 :: 2018.07.26
01. View
먼저 TableView를 생성
<TableView fx:id="tableRoom"> <columns> <TableColumn prefWidth="100" text="이름" /> <TableColumn prefWidth="100" text="과목" /> <TableColumn prefWidth="100" text="점수" /> </columns> </TableView>
02. Model
TableView에 들어갈 모델
"SimpleStringProperty" 타입의 필드를 생성
"Getter & Setter" 생성시 주의
public class Node { private SimpleStringProperty name; private SimpleStringProperty subject; private SimpleStringProperty grade; public Node(String name, String subject, String grade) { this.name = new SimpleStringProperty(name); this.subject = new SimpleStringProperty(subject); this.grade = new SimpleStringProperty(grade); } public String getName() { return name.get(); } public void setName(String name) { this.name.set(name); } public String getSubject() { return subject.get(); } public void setSubject(String subject) { this.subject.set(subject); } public String getGrade() { return grade.get(); } public void setGrade(String grade) { this.grade.set(grade); } }
03. 연동
@FXML TableView tableView; // ~~~ ObservableList roomList = FXCollections.observableArrayList( new Node("김씨", "국어", "80"), new Node("박씨", "영어", "90"), new Node("최씨", "수학", "70") ); for (int i = 0; i < tableView.getColumns().size(); i++) { javafx.scene.control.TableColumn tc = tableRoom.getColumns().get(i); // "name", "subject", "grade" 모델의 각각의 필드명이 들어가야함 tc.setCellValueFactory(new PropertyValueFactory(Define.STANDBY_TABLE_COLUMNS[i])); tc.setStyle("-fx-alignment:CENTER;"); } tableView.setItems(roomList); tableView.getSelectionModel().selectionModeProperty().addListener( new ChangeListener<SelectionMode>() { @Override public void changed(ObservableValue<? extends SelectionMode> observable, SelectionMode oldValue, SelectionMode newValue) { } } );
Created by SDM
작성자 정보
e-mail :: jm921106@naver.com || jm921106@gmail.com
github :: https://github.com/moonscoding
반응형
'Java > JavaFX 개념' 카테고리의 다른 글
Java FX // 개념 // Popup & Dialog (0) | 2018.07.27 |
---|---|
Java FX // 개념 // Controller (0) | 2018.07.27 |
Java FX // 개념// Scene (1) | 2018.07.26 |