質問編集履歴

2

シンプルなコードに変更しました。エラー表示は変わらずです。

2016/09/10 09:12

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -24,35 +24,11 @@
24
24
 
25
25
 
26
26
 
27
-
28
-
29
-
30
-
31
27
  import java.awt.BorderLayout;
32
28
 
33
29
  import java.awt.Dimension;
34
30
 
35
- import java.awt.Font;
36
31
 
37
- import java.awt.Insets;
38
-
39
- import java.awt.event.WindowAdapter;
40
-
41
- import java.awt.event.WindowEvent;
42
-
43
- import java.sql.Connection;
44
-
45
- import java.sql.ResultSet;
46
-
47
- import java.sql.ResultSetMetaData;
48
-
49
- import java.sql.Statement;
50
-
51
- import java.util.ArrayList;
52
-
53
-
54
-
55
- import javax.swing.DefaultCellEditor;
56
32
 
57
33
  import javax.swing.JFrame;
58
34
 
@@ -60,215 +36,41 @@
60
36
 
61
37
  import javax.swing.JTable;
62
38
 
63
- import javax.swing.JTextField;
64
39
 
65
- import javax.swing.JToolBar;
66
40
 
67
- import javax.swing.table.AbstractTableModel;
41
+ public class SampleApp extends JFrame {
42
+
43
+ JTable table;
44
+
45
+ JScrollPane scroll;
68
46
 
69
47
 
70
48
 
71
- import javax.swing.table.JTableHeader;
49
+ public SampleApp(){
72
50
 
51
+ this.setSize(new Dimension(300,200));
52
+
53
+ this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
54
+
55
+ table = new JTable(10,5);
56
+
73
- import javax.swing.table.TableModel;
57
+ scroll = new JScrollPane(table);
58
+
59
+ this.add(scroll,BorderLayout.CENTER);
60
+
61
+ }
74
62
 
75
63
 
76
64
 
77
- import DBManager.DBManager;
65
+ public static void main(String[] args) {
66
+
67
+ new SampleApp().setVisible(true);
68
+
69
+ }
78
70
 
79
71
 
80
72
 
81
-
82
-
83
- public class JTableFrame extends JFrame {
84
-
85
- /**
86
-
87
- *
88
-
89
- */
90
-
91
- private static final long serialVersionUID = 1L;
92
-
93
- String[][] data;
94
-
95
- String[] header;
96
-
97
- int nCol, nRow;
98
-
99
-
100
-
101
- public JTableFrame(final String sqldb, final String sqltable) throws Exception {
102
-
103
- this.setTitle("JTableFrame " + sqldb + "." + sqltable);
104
-
105
-
106
-
107
- JToolBar toolBar = new JToolBar();
108
-
109
- toolBar.setFloatable(true);
110
-
111
- toolBar.setMargin(new Insets(0,0,0,0));
112
-
113
- getContentPane().add(toolBar, BorderLayout.NORTH);
114
-
115
-
116
-
117
- this.addWindowListener(new WindowAdapter(){
118
-
119
- public void windowClosing(WindowEvent we) { System.exit(0); }
120
-
121
- });
122
-
123
-
124
-
125
- loadData(sqldb, sqltable);
126
-
127
-
128
-
129
- TableModel dataModel = new AbstractTableModel() {
130
-
131
- /**
132
-
133
- *
134
-
135
- */
136
-
137
- private static final long serialVersionUID = 1L;
138
-
139
- public int getColumnCount() { return header.length; }
140
-
141
- public int getRowCount() { return data.length; }
142
-
143
- public boolean isCellEditable(int row, int col) { return true; }
144
-
145
- public Object getValueAt(int row, int col) { return data[row][col]; }
146
-
147
- public void setValueAt(Object val, int row, int col) {
148
-
149
- data[row][col] = (String)val;
150
-
151
- try { updateData(sqldb, sqltable, row, col); }
152
-
153
- catch (Exception e) { System.out.println(e.getMessage()); }
154
-
155
- }
73
+ }
156
-
157
- public String getColumnName(int col) { return header[col]; }
158
-
159
- };
160
-
161
-
162
-
163
- JTable table = new JTable(dataModel);
164
-
165
- JScrollPane pane = new JScrollPane(table);
166
-
167
- this.add(pane, BorderLayout.CENTER);
168
-
169
- this.setSize(new Dimension(200, 150));
170
-
171
- JTableHeader jh = table.getTableHeader();
172
-
173
- jh.setFont(new Font(jh.getFont().getFamily(),Font.PLAIN,18));
174
-
175
- table.setFont(new Font(jh.getFont().getFamily(),Font.PLAIN,18));
176
-
177
- table.setRowHeight(22);
178
-
179
- JTextField Text = new JTextField();
180
-
181
- Text.setFont(new Font(jh.getFont().getFamily(), Font.PLAIN, 18));
182
-
183
- table.setDefaultEditor(Object.class, new DefaultCellEditor(Text));
184
-
185
- }
186
-
187
-
188
-
189
- void loadData(String database, String table) throws Exception {
190
-
191
-
192
-
193
- Connection con =DBManager.getConnection();
194
-
195
- Statement stmt = con.createStatement();
196
-
197
- String sql = "select * from " + table;
198
-
199
- ResultSet rs = stmt.executeQuery(sql);
200
-
201
- ResultSetMetaData metaData = rs.getMetaData();
202
-
203
- nCol = metaData.getColumnCount(); // 列数
204
-
205
- header = new String[nCol];
206
-
207
- for (int i=0; i < nCol; i++) {
208
-
209
- header[i] = metaData.getColumnName(i+1);
210
-
211
- }
212
-
213
- java.util.List<String[]> list = new ArrayList<String[]>();
214
-
215
- while (rs.next()) {
216
-
217
- String[] record = new String[nCol];
218
-
219
- for (int i=0; i < nCol; i++) {
220
-
221
- record[i] = rs.getString(i+1);
222
-
223
- }
224
-
225
- list.add(record);
226
-
227
- }
228
-
229
- stmt.close();
230
-
231
- con.close();
232
-
233
- data = list.toArray(new String[0][]);
234
-
235
- nRow = data.length;
236
-
237
- }
238
-
239
-
240
-
241
- void updateData(String database, String table, int row, int col) throws Exception {
242
-
243
- Connection con =DBManager.getConnection();
244
-
245
- Statement stmt = con.createStatement();
246
-
247
- String sql = "update " + table + " set " + header[col] + "='" + data[row][col]
248
-
249
- + "' where " + header[0] + "='" + data[row][0] + "'";
250
-
251
- stmt.execute(sql);
252
-
253
- }
254
-
255
-
256
-
257
- public static void main(String[] args) throws Exception {
258
-
259
- String db = "D:/PostgreSQL/9.5/bin";
260
-
261
- String table = "employee";
262
-
263
- new JTableFrame(db, table).setVisible(true);
264
-
265
-
266
-
267
- }
268
-
269
- }
270
-
271
-
272
74
 
273
75
  ```
274
76
 

1

初心者アイコンをつけました。

2016/09/10 09:12

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
File without changes