chers developpeurs,
encore une fois j'ai besoin de vos aides pour faire marcher mon code.
J'explique ici un exemple de ce que ce j'ai à faire.
Voici, avec un query j'affiche les projets avec ses attributs (voir tablecu en haut du fichier). C'est lorsque je choisis en cliquant sur un project que les Report de ce projet s'affiche (tableau en bas). Juste pour plus d'explication, vous constaterez que un projet est marque. C'est de ce projet que les rapport (report) s'affichent (priere de ne pas considérer le marquage d'un rapport).
Mon probleme viens du fait que je veux ajouter un raport au tableau de rapport (avec tout ses attributs), ceci en cliquant sur le bouton "Add Report". Et c'est là que je suis bloqué.
Je vous envoie aussi certaines parties de mon code.
Code me permettant d'avoir le tableau en haut (Projets)
Code me permettant d'avoir le tableau en bas (Projets)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198 package gui.dialog; import java.sql.ResultSet; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; import gui.MainFrame; import gui.panel.CPProjectList; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JTextField; import com.jgoodies.forms.builder.PanelBuilder; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; import utilities.DatabaseConnection; public class DialogProjectEdit extends JDialog { /** * */ private static final long serialVersionUID = 1L; private MainFrame frame = MainFrame.getInstance(); private DatabaseConnection dbc = frame.getConnectedDB(); DateFormat formater = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); private int projId = 0; private JButton btEdit; private JButton btCancel; private JTextField projektName; private JTextField projectId; private JTextField createdDate; /** * konstruktor * @param frame owner frame * @param modal * @param i projektID */ public DialogProjectEdit(JFrame frame, boolean modal, int i){ super(frame, modal); this.setProjId(i); initialize(); setModal(modal); this.setLocationRelativeTo(null); } private void initialize() { this.setTitle("Project change"); this.setSize(450, 180); FormLayout layout = new FormLayout( "right:[40dlu,pref], 3dlu, 40dlu, 7dlu, " + "right:[40dlu,pref], 3dlu, 60dlu", "p, 3dlu, p, 3dlu, p, 9dlu, p, 3dlu, p, 14dlu, p"); PanelBuilder builder = new PanelBuilder(layout); builder.setDefaultDialogBorder(); CellConstraints cc = new CellConstraints(); int row = 1; builder.addLabel("Projectname:", cc.xy(1, row)); builder.add(getPName(), cc.xyw(3, row++, 5)); row++; builder.addLabel("ProjectID:", cc.xy(1, row)); builder.add(getPId(), cc.xyw(3, row++, 5)); row++; builder.addLabel("createdDate", cc.xy(1, row)); builder.add(getCDate(), cc.xyw(3, row++, 5)); row++; builder.add(getbtEdit(), cc.xy(5, row)); builder.add(getbtCancel(), cc.xy(7, row)); this.getValues(); this.setContentPane(builder.getPanel()); } private void getValues(){ try{ ResultSet rs = dbc.abfrage("select * from project_table where project_id = "+ this.getProjId() +" ;"); while( rs.next() ) { this.projectId.setText(rs.getString(1)); this.projektName.setText(rs.getString(2)); this.createdDate.setText(formater.format(rs.getTimestamp(3)));} } catch (Exception e) { e.printStackTrace(); } } private void setProjId(int i){ this.projId = i; } private int getProjId(){ return this.projId; } private JTextField getPName() { if (projektName == null) { projektName = new JTextField(); } return projektName; } private JTextField getPId() { if (projectId == null) { projectId = new JTextField(); } return projectId; } private JTextField getCDate() { if (createdDate == null) { createdDate = new JTextField(); } return createdDate; } private JButton getbtEdit() { if (btEdit == null) { btEdit = new JButton(); btEdit.setText("Edit"); final int id = this.getProjId(); btEdit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { java.sql.Timestamp sdate = null; try { Date jdate = formater.parse(createdDate.getText().toString()); sdate = new java.sql.Timestamp(jdate.getTime()); } catch(Exception ex) { ex.printStackTrace(); } String query = "UPDATE project_table set project_id = " + id + ", created_date = \'" + sdate + "\' WHERE project_id = "+ id +";"; if(dbc.setEintrag(query)) System.out.println("Query Successed"); DialogProjectEdit.this.setVisible(false); DialogProjectEdit.this.dispose(); MainFrame.loadPanel(new CPProjectList()); } }); } return btEdit; } private JButton getbtCancel() { if (btCancel == null) { btCancel = new JButton(); btCancel.setText("Cancel"); btCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { DialogProjectEdit.this.setVisible(false); DialogProjectEdit.this.dispose(); } }); } return btCancel; } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191 package gui.dialog; import java.sql.ResultSet; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; import gui.MainFrame; import gui.panel.CPProjectList; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JTextField; import com.jgoodies.forms.builder.PanelBuilder; import com.jgoodies.forms.layout.CellConstraints; import com.jgoodies.forms.layout.FormLayout; import utilities.DatabaseConnection; public class DialogReportEdit extends JDialog { /** * */ private static final long serialVersionUID = 1L; private MainFrame frame = MainFrame.getInstance(); private DatabaseConnection dbc = frame.getConnectedDB(); DateFormat formater = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss"); private int repId = 0; //projId = 0; private JButton btEdit; private JButton btCancel; private JTextField reportName; //projektName; private JTextField reportId; //projectId; private JTextField Date; //createdDate; /** * konstruktor * @param frame owner frame * @param modal * @param i projektID */ public DialogReportEdit(JFrame frame, boolean modal, int i){ super(frame, modal); this.setRepId(i); //setProjId(i); initialize(); setModal(modal); this.setLocationRelativeTo(null); } private void initialize() { this.setTitle(" Add Report"); //("Project change"); this.setSize(450, 180); FormLayout layout = new FormLayout( "right:[40dlu,pref], 3dlu, 40dlu, 7dlu, " + "right:[40dlu,pref], 3dlu, 60dlu", "p, 3dlu, p, 3dlu, p, 9dlu, p, 3dlu, p, 14dlu, p"); PanelBuilder builder = new PanelBuilder(layout); builder.setDefaultDialogBorder(); CellConstraints cc = new CellConstraints(); int row = 1; builder.addLabel("ReportId:", cc.xy(1, row)); //("Projectname:", cc.xy(1, row)); builder.add(getRName(), cc.xyw(3, row++, 5)); //add(getPName(), cc.xyw(3, row++, 5)); row++; builder.addLabel("ReportName:", cc.xy(1, row));//addLabel("ProjectID:", cc.xy(1, row)); builder.add(getPId(), cc.xyw(3, row++, 5)); row++; builder.addLabel("Date", cc.xy(1, row));//addLabel("createdDate", cc.xy(1, row)); builder.add(getCDate(), cc.xyw(3, row++, 5)); row++; builder.add(getbtEdit(), cc.xy(5, row)); builder.add(getbtCancel(), cc.xy(7, row)); this.getValues(); this.setContentPane(builder.getPanel()); } private void getValues(){ } private void setRepId(int i){ this.repId = i; } private int getRepId(){ return this.repId; } private JTextField getRName() { if (reportName == null) { reportName = new JTextField(); } return reportName; } private JTextField getPId() { if (reportId == null) { reportId = new JTextField(); } return reportId; } private JTextField getCDate() { if (Date == null) { Date = new JTextField(); } return Date; } private JButton getbtEdit() { if (btEdit == null) { btEdit = new JButton(); btEdit.setText("Edit"); final int id = this.getRepId(); btEdit.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { java.sql.Timestamp sdate = null; try { Date jdate = formater.parse(Date.getText().toString()); sdate = new java.sql.Timestamp(jdate.getTime()); } catch(Exception ex) { ex.printStackTrace(); } String query = "UPDATE project_table set project_id = " + id + ", created_date = \'" + sdate + "\' WHERE project_id = "+ id +";"; if(dbc.setEintrag(query)) System.out.println("Query Successed"); DialogReportEdit.this.setVisible(false); DialogReportEdit.this.dispose(); MainFrame.loadPanel(new CPProjectList()); } }); } return btEdit; } private JButton getbtCancel() { if (btCancel == null) { btCancel = new JButton(); btCancel.setText("Cancel"); btCancel.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent e) { DialogReportEdit.this.setVisible(false); DialogReportEdit.this.dispose(); } }); } return btCancel; } }
Code pour ajouter ou effacer les donnée
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231 package gui.panel; import gui.MainFrame; //import gui.dialog.DialogProjectEdit; import gui.dialog.DialogReportEdit; import model.ProjectListTableModel; import model.ReportListTableModel; import utilities.DatabaseConnection; import javax.swing.*; import javax.swing.border.EmptyBorder; import javax.swing.border.TitledBorder; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; public class CPProjectList extends JPanel { private static final long serialVersionUID = 1L; private MainFrame frame = MainFrame.getInstance(); private DatabaseConnection dbc = frame.getConnectedDB(); private ProjectListTableModel ptm = frame.getProjectListTableModel(); private ReportListTableModel rtm = frame.getReportListTableModel(); private JPanel lstPanel = null; private JPanel reportPanel = null; private JPanel btProjectPanel = null; private JPanel btReportPanel = null; private JTable jtProject = null; private JTable jtReport = null; private JScrollPane jsProject = null; private JScrollPane jsReport = null; private JButton btProjectNew = null; private JButton btProjectDrop = null; private JButton btReportNew = null; private JButton btReportDrop = null; public CPProjectList() { initialize(); } private void initialize() { frame.setTitle("Bug Tracker - ProjectList"); BorderLayout borderLayout1 = new BorderLayout(); borderLayout1.setHgap(50); borderLayout1.setVgap(0); this.setLayout(borderLayout1); this.add(getLstPanel(), BorderLayout.NORTH); this.add(getReportPanel(), BorderLayout.CENTER); this.setBorder(new EmptyBorder(30, 50, 30, 50)); ptm.addValues(dbc.abfrage("select project_id, project_name," + "project_table.created_date, username " + "from user_table, project_table where user_id = created_by;")); } private JPanel getLstPanel() { if (lstPanel == null) { lstPanel = new JPanel(); BorderLayout borderLayout = new BorderLayout(); lstPanel.setLayout(borderLayout); lstPanel.setBorder(BorderFactory.createTitledBorder(null, "Project List", TitledBorder.LEFT, TitledBorder.DEFAULT_POSITION, null, null)); lstPanel.add(getJsProject(), BorderLayout.CENTER); lstPanel.add(getBtProjektPanel(), java.awt.BorderLayout.SOUTH); } return lstPanel; } private JPanel getReportPanel(){ if (reportPanel == null){ reportPanel = new JPanel(); BorderLayout borderLayout = new BorderLayout(); reportPanel.setLayout(borderLayout); reportPanel.setBorder(BorderFactory.createTitledBorder(null, "Report List", TitledBorder.LEFT, TitledBorder.DEFAULT_POSITION, null, null)); reportPanel.add(getJsReport(), BorderLayout.CENTER); reportPanel.add(getBtReportPanel(), java.awt.BorderLayout.SOUTH); } return reportPanel; } private JPanel getBtProjektPanel(){ if (btProjectPanel == null){ btProjectPanel = new JPanel(); btProjectPanel.setLayout(new FlowLayout()); btProjectPanel.add(getBtProjectNew(), null); btProjectPanel.add(getBtProjectDrop(), null); } return btProjectPanel; } private JPanel getBtReportPanel(){ if (btReportPanel == null){ btReportPanel = new JPanel(); btReportPanel.setLayout(new FlowLayout()); btReportPanel.add(getBtReportNew(), null); btReportPanel.add(getBtReportDrop(), null); } return btReportPanel; } private JButton getBtProjectNew(){ if (btProjectNew == null){ btProjectNew = new JButton(); btProjectNew.setText("Add Project"); } return btProjectNew; } private JButton getBtReportNew(){ if (btReportNew == null){ btReportNew = new JButton(); btReportNew.setText("Add Report"); btReportNew.addActionListener(new java.awt.event.ActionListener(){ public void actionPerformed(java.awt.event.ActionEvent e) { if (getJtReport().getSelectedRow() != -1) { final int repId = Integer.parseInt(jtReport.getValueAt(jtReport.getSelectedRow(),0).toString()); DialogReportEdit dialog = new DialogReportEdit(frame, true, repId); dialog.setVisible(true); } } }); } return btReportNew; } private JButton getBtProjectDrop(){ if (btProjectDrop == null){ btProjectDrop = new JButton(); btProjectDrop.setText("Delete Project"); } return btProjectDrop; } private JButton getBtReportDrop(){ if (btReportDrop == null){ btReportDrop = new JButton(); btReportDrop.setText("Delete Report"); } return btReportDrop; } private JTable getJtProjekt() { if (jtProject == null) { jtProject = new JTable(); jtProject.setModel(ptm); jtProject.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e) { try { final int projId = Integer.parseInt(jtProject.getValueAt(jtProject.getSelectedRow(),0).toString()); //System.out.println("project id "+projId); rtm.addValues(dbc.abfrage("select report_id as 'Report ID', summary as Reportname," + "proj"+projId+"_report_table.created_date as 'Erstellt am', username as 'Erstellt von' " + "from user_table, proj"+projId+"_report_table where user_id = reported_by;")); jtReport.setModel(rtm); } catch (Exception exception) { exception.printStackTrace(); } } }); } return jtProject; } private JScrollPane getJsProject() { if (jsProject == null) { jsProject = new JScrollPane(); jsProject.setPreferredSize(new Dimension(520, 200)); jsProject.setViewportView(getJtProjekt()); } return jsProject; } private JTable getJtReport() { if (jtReport == null) { jtReport = new JTable(); } return jtReport; } private JScrollPane getJsReport() { if (jsReport == null) { jsReport = new JScrollPane(); jsReport.setPreferredSize(new Dimension(520, 200)); jsReport.setViewportView(getJtReport()); } return jsReport; } }
Quelqu'un a-t-il une idée du comment je peux proceder?
Merci
Partager