JAVA proqramlaşdırmada comboBox silinmə

Salam,
JAVA proqramlaşdırma dilini yaxşı bilən şəxslərin köməyinə ehtiyacım var. Bir proqram üzərində çalışıram və bir nöqtədə yardım lazımdı. Kömək etmək istəyən olsa çox məmnun olaram.

Class-da mövcud kodlar bunlardır. Bu CLASS-ın etməli olduğu şey: mən fakulteti seçəndə o fakultetə bağlı kafedralar yüklənsin və sonra kafedra seçdikdə ona uyğun qruplar. Lakin problem odur ki, hər fakulteti seçəndə comboDepartment daxilindəki mövcud kafedralar silinməlidir və seçilən fakultetə uyğun kafedralar yüklənməlidir və də kafedra seçdikdə ona uyğun qruplar amma bu alınmır. Xəta alıram. Xətanı da qeyd edirəm aşağı… Bilirəm ki, problem comboDepartment.removeAllItems()-dən qaynaqlanır. Harda istifadə etməliyəm bu metodu və ya necə istifadə etməliyəm? Köməyi dəyənlər üçün indidən təşəkkürlər..

1import java.awt.EventQueue;
2 
3import javax.swing.JFrame;
4 
5import java.awt.BorderLayout;
6import java.io.BufferedReader;
7import java.io.FileReader;
8import java.sql.Connection;
9import java.sql.DriverManager;
10import java.sql.ResultSet;
11import java.sql.Statement;
12import java.util.ArrayList;
13 
14import javax.swing.JPanel;
15import javax.swing.JButton;
16import javax.swing.JLabel;
17import javax.swing.JComboBox;
18import javax.swing.JScrollPane;
19import javax.swing.JTable;
20import javax.swing.ListSelectionModel;
21 
22import net.miginfocom.swing.MigLayout;
23 
24import javax.swing.UIManager;
25import javax.swing.border.LineBorder;
26import javax.swing.table.DefaultTableModel;
27import javax.swing.JPopupMenu;
28 
29import java.awt.Component;
30import java.awt.event.MouseAdapter;
31import java.awt.event.MouseEvent;
32 
33import javax.swing.JMenuItem;
34import java.awt.event.ActionListener;
35import java.awt.event.ActionEvent;
36 
37 
38public class showStudentSection {
39 
40    private String db;
41    private String db_user;
42    private String db_pass;
43 
44    private JFrame frmStudents;
45    private JTable table;
46 
47    private Lang lang = new Lang();
48    private Theme theme = new Theme();
49    private doSpecificOperations ops = new doSpecificOperations();
50    private getTables getTable = new getTables();
51 
52    private JComboBox<String> comboGroup;
53    private JComboBox<String> comboDepartment;
54    private JComboBox<String> comboFaculty;
55    private ArrayList<Integer> groupID = new ArrayList<Integer>();
56    private ArrayList<Integer> depID = new ArrayList<Integer>();
57    private ArrayList<Integer> facultyID = new ArrayList<Integer>();
58 
59    private Boolean first_time_fac = true;
60    private Boolean first_time_dep = true;
61    private Boolean first_time_grp = true;
62 
63    public static void main(String[] args) {
64        try {
65            UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
66        } catch (Throwable e) {
67            e.printStackTrace();
68        }
69        EventQueue.invokeLater(new Runnable() {
70            public void run() {
71                try {
72                    showStudentSection window = new showStudentSection();
73                    window.frmStudents.setVisible(true);
74                } catch (Exception e) {
75                    e.printStackTrace();
76                }
77            }
78        });
79    }
80 
81 
82    public showStudentSection() {
83        initialize();
84    }
85 
86 
87    private void initialize() {
88        getDB();
89 
90        frmStudents = new JFrame();
91        frmStudents.getContentPane().setBackground(theme.setColor(1));
92        frmStudents.setTitle("Students");
93        frmStudents.setBounds(100, 100, 909, 473);
94        frmStudents.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
95        frmStudents.getContentPane().setLayout(new BorderLayout(0, 0));
96 
97        JPanel upPanel = new JPanel();
98        upPanel.setBorder(new LineBorder(theme.setColor(3)));
99        upPanel.setBackground(theme.setColor(1));
100        frmStudents.getContentPane().add(upPanel, BorderLayout.NORTH);
101 
102        JLabel lblFaculty = new JLabel("Faculty:");
103        lblFaculty.setBackground(theme.setColor(1));
104        lblFaculty.setForeground(theme.setColor(2));
105        upPanel.add(lblFaculty);
106 
107        comboFaculty = new JComboBox<String>();
108        comboFaculty.addActionListener(new ActionListener() {
109            public void actionPerformed(ActionEvent arg0) {
110 
111                if(first_time_fac==false){
112                    LoadDepartments(facultyID.get(comboFaculty.getSelectedIndex()));
113 
114                }
115 
116                first_time_fac=false;
117            }
118        });
119        comboFaculty.setBackground(theme.setColor(1));
120        upPanel.add(comboFaculty);
121 
122        JLabel lblDepartment = new JLabel("Department:");
123        lblDepartment.setBackground(theme.setColor(1));
124        lblDepartment.setForeground(theme.setColor(2));
125        upPanel.add(lblDepartment);
126 
127        comboDepartment = new JComboBox<String>();
128        comboDepartment.addActionListener(new ActionListener() {
129 
130            @Override
131            public void actionPerformed(ActionEvent arg0) {
132                if(first_time_dep==false){
133                    LoadGroups(depID.get(comboDepartment.getSelectedIndex()));
134                }
135 
136                first_time_dep=false;
137            }
138        });
139        comboDepartment.setBackground(theme.setColor(1));
140        upPanel.add(comboDepartment);
141 
142        JLabel lblGroup = new JLabel("Group:");
143        lblGroup.setBackground(theme.setColor(1));
144        lblGroup.setForeground(theme.setColor(2));
145        upPanel.add(lblGroup);
146 
147        comboGroup = new JComboBox<String>();
148        comboGroup.setBackground(theme.setColor(1));
149        upPanel.add(comboGroup);
150 
151        JPanel downPanel = new JPanel();
152        downPanel.setBorder(new LineBorder(theme.setColor(3)));
153        downPanel.setBackground(theme.setColor(1));
154        frmStudents.getContentPane().add(downPanel, BorderLayout.SOUTH);
155 
156        JButton btnClose = new JButton("Close");
157        btnClose.setBackground(theme.setColor(1));
158        btnClose.setForeground(theme.setColor(2));
159        downPanel.add(btnClose);
160 
161        JPanel leftPanel = new JPanel();
162        leftPanel.setBackground(theme.setColor(1));
163        frmStudents.getContentPane().add(leftPanel, BorderLayout.WEST);
164        leftPanel.setLayout(new MigLayout("", "[]", "[][][][][][][]"));
165 
166        JLabel lblStudentOperations = new JLabel("Student operations");
167        lblStudentOperations.setBackground(theme.setColor(1));
168        lblStudentOperations.setForeground(theme.setColor(2));
169        leftPanel.add(lblStudentOperations, "cell 0 0,growx");
170 
171        JButton btnAddStudent = new JButton("Add student");
172        btnAddStudent.setBackground(theme.setColor(1));
173        btnAddStudent.setForeground(theme.setColor(2));
174        leftPanel.add(btnAddStudent, "cell 0 1,growx");
175 
176        JButton btnDeleteStudent = new JButton("Delete student");
177        btnDeleteStudent.setBackground(theme.setColor(1));
178        btnDeleteStudent.setForeground(theme.setColor(2));
179        leftPanel.add(btnDeleteStudent, "cell 0 2,growx");
180 
181        JButton btnEditStudent = new JButton("Edit student");
182        btnEditStudent.setBackground(theme.setColor(1));
183        btnEditStudent.setForeground(theme.setColor(2));
184        leftPanel.add(btnEditStudent, "cell 0 3,growx");
185 
186        JLabel lblOperations = new JLabel("Other operations");
187        lblOperations.setBackground(theme.setColor(1));
188        lblOperations.setForeground(theme.setColor(2));
189        leftPanel.add(lblOperations, "cell 0 4,growx");
190 
191        JButton btnFindStudent = new JButton("Find student");
192        btnFindStudent.setBackground(theme.setColor(1));
193        btnFindStudent.setForeground(theme.setColor(2));
194        leftPanel.add(btnFindStudent, "cell 0 5,growx");
195 
196        JButton btnSaveTable = new JButton("Save table (xls)");
197        btnSaveTable.setBackground(theme.setColor(1));
198        btnSaveTable.setForeground(theme.setColor(2));
199        leftPanel.add(btnSaveTable, "cell 0 6,growx");
200 
201        JPanel center = new JPanel();
202        frmStudents.getContentPane().add(center, BorderLayout.CENTER);
203        center.setLayout(new BorderLayout(0, 0));
204 
205        JScrollPane scrollPane = new JScrollPane();
206        center.add(scrollPane, BorderLayout.CENTER);
207 
208        table = new JTable();
209        table.setSelectionBackground(theme.setColor(5));
210        table.setShowVerticalLines(true);
211        table.setShowHorizontalLines(true);
212        table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
213        scrollPane.setViewportView(table);
214 
215        JPopupMenu popupMenu = new JPopupMenu();
216        addPopup(table, popupMenu);
217 
218        JMenuItem mntmSeeStudentInformation = new JMenuItem("See student information");
219        popupMenu.add(mntmSeeStudentInformation);
220 
221        LoadFaculties();
222        LoadDepartments(facultyID.get(comboFaculty.getSelectedIndex()));
223        LoadGroups(depID.get(comboDepartment.getSelectedIndex()));
224 
225        LoadStudents("WHERE facultyID="+facultyID.get(comboFaculty.getSelectedIndex())+" AND depID="+depID.get(comboDepartment.getSelectedIndex()) + " AND groupID="+groupID.get(comboGroup.getSelectedIndex()));
226 
227    }
228 
229    private void LoadStudents(String query)
230    {
231 
232        DefaultTableModel model = new DefaultTableModel(){
233 
234            private static final long serialVersionUID = 1L;
235 
236            @Override
237            public boolean isCellEditable(int row, int column)
238            {
239                return false;
240            }
241 
242        };
243        try {
244            Class.forName("com.mysql.jdbc.Driver");
245            Connection elaqe = DriverManager.getConnection(db,db_user,db_pass);
246            Statement sorgu = elaqe.createStatement();
247            ResultSet netice = sorgu.executeQuery("SELECT * FROM students " + query);
248            int c_count = netice.getMetaData().getColumnCount();
249 
250            model.addColumn(lang.translate("student_no"));
251            model.addColumn(lang.translate("name_surname"));
252            model.addColumn(lang.translate("sex"));
253            model.addColumn(lang.translate("birthday"));
254            model.addColumn(lang.translate("birth_place"));
255            model.addColumn(lang.translate("admission_year"));
256            model.addColumn(lang.translate("profession"));
257            model.addColumn(lang.translate("phone"));
258            model.addColumn(lang.translate("e_mail"));
259            model.addColumn(lang.translate("education_status"));
260 
261            while(netice.next())
262            {
263                Object[] row = new Object[c_count];
264                row[0] = netice.getString("studentNO");
265                row[1] = netice.getString("name");
266                row[2] = netice.getString("gender");
267                row[3] = netice.getString("date_birth");
268                row[4] = netice.getString("place_birth");
269                row[5] = netice.getString("admission_date");
270                row[6] = getTable.getStudentProfessionText(netice.getString("profession"));
271                row[7] = netice.getString("phone");
272                row[8] = netice.getString("e_mail");
273                row[9] = getTable.getStudentStatusText(netice.getString("education_status"));
274 
275                model.addRow(row);
276            }
277 
278            elaqe.close();
279            sorgu.close();
280 
281            table.setModel(model);
282        } catch (Exception e) {
283            ops.createInfoMessage(lang.translate("error"),lang.translate("db_error")+" (" + e.toString().substring(0, 40) + ")");
284        }
285    }
286 
287    private void LoadFaculties()
288    {
289        try {
290            Class.forName("com.mysql.jdbc.Driver");
291            Connection elaqe = DriverManager.getConnection(db,db_user,db_pass);
292            Statement sorgu = elaqe.createStatement();
293            ResultSet netice = sorgu.executeQuery("SELECT * FROM faculties");
294 
295            while(netice.next())
296            {
297                comboFaculty.addItem(netice.getString("name"));
298                facultyID.add(netice.getInt("facultyID"));
299            }
300 
301            elaqe.close();
302            sorgu.close();
303        } catch (Exception e) {
304            ops.createInfoMessage(lang.translate("error"),lang.translate("db_error")+" (" + e.toString().substring(0, 40) + ")");
305        }
306    }
307 
308    private void LoadDepartments(int facultyID)
309    {      
310        comboDepartment.removeAllItems();
311        depID.clear();
312        try {
313            Class.forName("com.mysql.jdbc.Driver");
314            Connection elaqe = DriverManager.getConnection(db,db_user,db_pass);
315            Statement sorgu = elaqe.createStatement();
316            ResultSet netice = sorgu.executeQuery("SELECT * FROM department WHERE facultyID="+facultyID);
317 
318            while(netice.next())
319            {
320                comboDepartment.addItem(netice.getString("name"));
321                depID.add(netice.getInt("depID"));
322            }
323 
324            elaqe.close();
325            sorgu.close();
326        } catch (Exception e) {
327            ops.createInfoMessage(lang.translate("error"),lang.translate("db_error")+" (" + e.toString().substring(0, 40) + ")");
328        }
329    }
330 
331    private void LoadGroups(int depID)
332    {  
333        comboGroup.removeAllItems();
334        groupID.clear();
335        try {
336            Class.forName("com.mysql.jdbc.Driver");
337            Connection elaqe = DriverManager.getConnection(db,db_user,db_pass);
338            Statement sorgu = elaqe.createStatement();
339            ResultSet netice = sorgu.executeQuery("SELECT * FROM groups WHERE depID="+depID);
340 
341            while(netice.next())
342            {
343                comboGroup.addItem(netice.getString("name"));
344                groupID.add(netice.getInt("groupID"));
345            }
346 
347            elaqe.close();
348            sorgu.close();
349        } catch (Exception e) {
350            ops.createInfoMessage(lang.translate("error"),lang.translate("db_error")+" (" + e.toString().substring(0, 40) + ")");
351        }
352    }
353 
354    private void getDB()
355    {
356        try {
357            BufferedReader bf = new BufferedReader(new FileReader(".\\mysql.db"));
358            db = ops.decodeText(bf.readLine());
359            db_user = ops.decodeText(bf.readLine());
360            db_pass = ops.decodeText(bf.readLine());
361 
362            bf.close();
363        } catch (Exception e) {
364            ops.createInfoMessage(lang.translate("error"),lang.translate("cant_get_db_info")+" (" + e.toString().substring(0, 40) + ")");
365        }
366    }
367 
368    private static void addPopup(Component component, final JPopupMenu popup) {
369        component.addMouseListener(new MouseAdapter() {
370            public void mousePressed(MouseEvent e) {
371                if (e.isPopupTrigger()) {
372                    showMenu(e);
373                }
374            }
375            public void mouseReleased(MouseEvent e) {
376                if (e.isPopupTrigger()) {
377                    showMenu(e);
378                }
379            }
380            private void showMenu(MouseEvent e) {
381                popup.show(e.getComponent(), e.getX(), e.getY());
382            }
383        });
384    }
385}
1Exception in thread "AWT-EventQueue-0"  java.lang.ArrayIndexOutOfBoundsException: -1
2at java.util.ArrayList.elementData(Unknown Source)
3at java.util.ArrayList.get(Unknown Source)
4at showStudentSection$3.actionPerformed(showStudentSection.java:133)
5at javax.swing.JComboBox.fireActionEvent(Unknown Source)
6at javax.swing.JComboBox.contentsChanged(Unknown Source)
7at javax.swing.JComboBox.intervalRemoved(Unknown Source)
8at javax.swing.AbstractListModel.fireIntervalRemoved(Unknown Source)
9at javax.swing.DefaultComboBoxModel.removeAllElements(Unknown Source)
10at javax.swing.JComboBox.removeAllItems(Unknown Source)
11at showStudentSection.LoadDepartments(showStudentSection.java:310)
12at showStudentSection.access$4(showStudentSection.java:308)
13at showStudentSection$2.actionPerformed(showStudentSection.java:112)
14at javax.swing.JComboBox.fireActionEvent(Unknown Source)
15at javax.swing.JComboBox.setSelectedItem(Unknown Source)
16at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
17at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(Unknown Source)
18at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
19at java.awt.Component.processMouseEvent(Unknown Source)
20at javax.swing.JComponent.processMouseEvent(Unknown Source)
21at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(Unknown Source)
22at java.awt.Component.processEvent(Unknown Source)
23at java.awt.Container.processEvent(Unknown Source)
24at java.awt.Component.dispatchEventImpl(Unknown Source)
25at java.awt.Container.dispatchEventImpl(Unknown Source)
26at java.awt.Component.dispatchEvent(Unknown Source)
27at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
28at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
29at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
30at java.awt.Container.dispatchEventImpl(Unknown Source)
31at java.awt.Window.dispatchEventImpl(Unknown Source)
32at java.awt.Component.dispatchEvent(Unknown Source)
33at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
34at java.awt.EventQueue.access$400(Unknown Source)
35at java.awt.EventQueue$3.run(Unknown Source)
36at java.awt.EventQueue$3.run(Unknown Source)
37at java.security.AccessController.doPrivileged(Native Method)
38at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
39at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
40at java.awt.EventQueue$4.run(Unknown Source)
41at java.awt.EventQueue$4.run(Unknown Source)
42at java.security.AccessController.doPrivileged(Native Method)
43at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
44at java.awt.EventQueue.dispatchEvent(Unknown Source)
45at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
46at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
47at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
48at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
49at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
50at java.awt.EventDispatchThread.run(Unknown Source)**strong text**

Yadda saxlama
Kateqoriya: Sual . , . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (1 cavab var)

(16:44, 06/02/2015 ) #52760

problem həll oldu. defaultcomboboxmodel istifadə etdim.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Bu suala aid öz sualım var:
Sual verin
Bu suala cavab vermək istəyirəm:
Cavab verin

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Son cavablar və şərhlər

cavaninsan cavab verdi - Amerika səhmləri (7 gün əvvəl)

Software Developer cavab verdi - Amerika səhmləri (7 gün əvvəl)

SN cavab verdi - Kripto vergi (16 gün əvvəl)

Nicat97 cavab verdi - ilkaddimlar.com-a nə oldu? (23 gün əvvəl)

nicatmemmedli cavab verdi - Proqramlaşdırma - fəlsəfə (27 gün əvvəl)

nicatmemmedli cavab verdi - ilkaddimlar.com-a nə oldu? (27 gün əvvəl)

Software Developer cavab verdi - ilkaddimlar.com-a nə oldu? (37 gün əvvəl)

E. Hacı cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (46 gün əvvəl)

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (48 gün əvvəl)

E. Hacı cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (48 gün əvvəl)

Triste cavab verdi - Adsense ya görə VÖEN gəlir vergisi 20% istəyirlər (48 gün əvvəl)

E. Hacı cavab verdi - Telefon almışam kamerasında ləkə var qaytarmaq istəyirəm, mağaza qaytarmır (48 gün əvvəl)

Software Developer cavab verdi - Rus dili yatırımı (49 gün əvvəl)

Cənab cavab verdi - Rus dili yatırımı (49 gün əvvəl)

Software Developer cavab verdi - Rus dili yatırımı (49 gün əvvəl)

Software Developer - 615 xal

E. Hacı - 608 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 434 xal

Maqa - 346 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Sistemə daxil olmuş 23309 sualdan 92%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2025