teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

見直しキャンペーン中

2023/07/26 15:47

投稿

TN8001
TN8001

スコア10112

answer CHANGED
@@ -1,127 +1,128 @@
1
- `ScheduleData`がちょっとおかしいです。
2
-
3
- 私もあまりわかっていませんが、↓を注意深く読んでやってみるとこんな感じでしょうか?
4
- [13 表ビュー(リリース8)](https://docs.oracle.com/javase/jp/8/javafx/user-interface-tutorial/table-view.htm)
5
-
6
- アイテムの追加・編集まで(編集はEnterで確定)
7
-
8
- ```fxml
9
- <?xml version="1.0" encoding="UTF-8"?>
10
-
11
- <?import javafx.scene.control.Button?>
12
- <?import javafx.scene.control.TableColumn?>
13
- <?import javafx.scene.control.TableView?>
14
- <?import javafx.scene.control.TextField?>
15
- <?import javafx.scene.layout.BorderPane?>
16
- <?import javafx.scene.layout.HBox?>
17
-
18
- <BorderPane xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1"
19
- fx:controller="sample.SceduleTableController">
20
- <center>
21
- <TableView fx:id="tableView1" editable="true">
22
- <columns>
23
- <TableColumn fx:id="column" prefWidth="200.0" text="data"/>
24
- </columns>
25
- </TableView>
26
- </center>
27
- <bottom>
28
- <HBox>
29
- <TextField fx:id="textField1"/>
30
- <Button onAction="#onButton1Click" text="Add"/>
31
- </HBox>
32
- </bottom>
33
- </BorderPane>
34
- ```
35
-
36
- ```Java
37
- package sample;
38
-
39
- import javafx.collections.FXCollections;
40
- import javafx.collections.ObservableList;
41
- import javafx.fxml.FXML;
42
- import javafx.scene.control.TableColumn;
43
- import javafx.scene.control.TableView;
44
- import javafx.scene.control.TextField;
45
- import javafx.scene.control.cell.PropertyValueFactory;
46
- import javafx.scene.control.cell.TextFieldTableCell;
47
-
48
- public class SceduleTableController {
49
- @FXML
50
- private TableView<ScheduleData> tableView1;
51
- @FXML
52
- private TableColumn<ScheduleData, String> column;
53
- @FXML
54
- private TextField textField1;
55
-
56
- private ObservableList<ScheduleData> schedules = FXCollections.observableArrayList();
57
-
58
- @FXML
59
- void initialize() {
60
- tableView1.setItems(schedules);
61
-
62
- column.setCellValueFactory(new PropertyValueFactory<>("data"));
63
- column.setCellFactory(TextFieldTableCell.forTableColumn());
64
- column.setOnEditCommit((TableColumn.CellEditEvent<ScheduleData, String> t) -> {
65
- ScheduleData data = t.getTableView().getItems().get(t.getTablePosition().getRow());
66
- data.setData(t.getNewValue());
67
- });
68
-
69
- schedules.add(new ScheduleData("aaaa"));
70
- schedules.add(new ScheduleData("bbbb"));
71
- }
72
-
73
- @FXML
74
- protected void onButton1Click() {
75
- String data = textField1.getText();
76
- if (0 < data.length()) {
77
- schedules.add(new ScheduleData(data));
78
- textField1.clear();
79
- }
80
- }
81
- }
82
- ```
83
-
84
- ```Javapackage sample;
85
-
86
- import javafx.beans.property.SimpleStringProperty;
87
- import javafx.beans.property.StringProperty;
88
-
89
- public class ScheduleData {
90
- private StringProperty data;
91
-
92
- public ScheduleData(String data) {
93
- this.data = new SimpleStringProperty(data);
94
- }
95
-
96
- public String getData() {
97
- return data.get();
98
- }
99
-
100
- public void setData(String data) {
101
- this.data.set(data);
102
- }
103
- }
104
- ```
105
-
106
- ```Java
107
- package sample;
108
-
109
- import javafx.application.Application;
110
- import javafx.fxml.FXMLLoader;
111
- import javafx.scene.Parent;
112
- import javafx.scene.Scene;
113
- import javafx.stage.Stage;
114
-
115
- public class Main extends Application {
116
- public static void main(String[] args) {
117
- launch(args);
118
- }
119
-
120
- @Override
121
- public void start(Stage primaryStage) throws Exception {
122
- Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
123
- primaryStage.setScene(new Scene(root, 300, 275));
124
- primaryStage.show();
125
- }
126
- }
1
+ `ScheduleData`がちょっとおかしいです。
2
+
3
+ 私もあまりわかっていませんが、↓を注意深く読んでやってみるとこんな感じでしょうか?
4
+ [13 表ビュー(リリース8)](https://docs.oracle.com/javase/jp/8/javafx/user-interface-tutorial/table-view.htm)
5
+
6
+ アイテムの追加・編集まで(編集はEnterで確定)
7
+
8
+ ```xml
9
+ <?xml version="1.0" encoding="UTF-8"?>
10
+
11
+ <?import javafx.scene.control.Button?>
12
+ <?import javafx.scene.control.TableColumn?>
13
+ <?import javafx.scene.control.TableView?>
14
+ <?import javafx.scene.control.TextField?>
15
+ <?import javafx.scene.layout.BorderPane?>
16
+ <?import javafx.scene.layout.HBox?>
17
+
18
+ <BorderPane xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1"
19
+ fx:controller="sample.SceduleTableController">
20
+ <center>
21
+ <TableView fx:id="tableView1" editable="true">
22
+ <columns>
23
+ <TableColumn fx:id="column" prefWidth="200.0" text="data"/>
24
+ </columns>
25
+ </TableView>
26
+ </center>
27
+ <bottom>
28
+ <HBox>
29
+ <TextField fx:id="textField1"/>
30
+ <Button onAction="#onButton1Click" text="Add"/>
31
+ </HBox>
32
+ </bottom>
33
+ </BorderPane>
34
+ ```
35
+
36
+ ```Java
37
+ package sample;
38
+
39
+ import javafx.collections.FXCollections;
40
+ import javafx.collections.ObservableList;
41
+ import javafx.fxml.FXML;
42
+ import javafx.scene.control.TableColumn;
43
+ import javafx.scene.control.TableView;
44
+ import javafx.scene.control.TextField;
45
+ import javafx.scene.control.cell.PropertyValueFactory;
46
+ import javafx.scene.control.cell.TextFieldTableCell;
47
+
48
+ public class SceduleTableController {
49
+ @FXML
50
+ private TableView<ScheduleData> tableView1;
51
+ @FXML
52
+ private TableColumn<ScheduleData, String> column;
53
+ @FXML
54
+ private TextField textField1;
55
+
56
+ private ObservableList<ScheduleData> schedules = FXCollections.observableArrayList();
57
+
58
+ @FXML
59
+ void initialize() {
60
+ tableView1.setItems(schedules);
61
+
62
+ column.setCellValueFactory(new PropertyValueFactory<>("data"));
63
+ column.setCellFactory(TextFieldTableCell.forTableColumn());
64
+ column.setOnEditCommit((TableColumn.CellEditEvent<ScheduleData, String> t) -> {
65
+ ScheduleData data = t.getTableView().getItems().get(t.getTablePosition().getRow());
66
+ data.setData(t.getNewValue());
67
+ });
68
+
69
+ schedules.add(new ScheduleData("aaaa"));
70
+ schedules.add(new ScheduleData("bbbb"));
71
+ }
72
+
73
+ @FXML
74
+ protected void onButton1Click() {
75
+ String data = textField1.getText();
76
+ if (0 < data.length()) {
77
+ schedules.add(new ScheduleData(data));
78
+ textField1.clear();
79
+ }
80
+ }
81
+ }
82
+ ```
83
+
84
+ ```Java
85
+ package sample;
86
+
87
+ import javafx.beans.property.SimpleStringProperty;
88
+ import javafx.beans.property.StringProperty;
89
+
90
+ public class ScheduleData {
91
+ private StringProperty data;
92
+
93
+ public ScheduleData(String data) {
94
+ this.data = new SimpleStringProperty(data);
95
+ }
96
+
97
+ public String getData() {
98
+ return data.get();
99
+ }
100
+
101
+ public void setData(String data) {
102
+ this.data.set(data);
103
+ }
104
+ }
105
+ ```
106
+
107
+ ```Java
108
+ package sample;
109
+
110
+ import javafx.application.Application;
111
+ import javafx.fxml.FXMLLoader;
112
+ import javafx.scene.Parent;
113
+ import javafx.scene.Scene;
114
+ import javafx.stage.Stage;
115
+
116
+ public class Main extends Application {
117
+ public static void main(String[] args) {
118
+ launch(args);
119
+ }
120
+
121
+ @Override
122
+ public void start(Stage primaryStage) throws Exception {
123
+ Parent root = FXMLLoader.load(getClass().getResource("sample.fxml"));
124
+ primaryStage.setScene(new Scene(root, 300, 275));
125
+ primaryStage.show();
126
+ }
127
+ }
127
128
  ```