Добрый день! создаю объект класса objItemCombo и добавляю его в модель DefaultComboBoxModel, а затем создаю combobox в который добавляю созданную модель. Как получить теперь доступ к объектам??? То есть мне нужно при выделении элемента combobox определить объект и получить доступ к полю idItem объекта objItemCombo.
Java |
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
| package gui;
public class objItemCombo {
private String nameItem;
private int idItem;
public objItemCombo(int idItem,String nameItem) {
this.idItem=idItem;
this.nameItem=nameItem;
}
public int GETidItem(){
return this.idItem;
}
public void SETidItem(int idItem){
this.idItem=idItem;
}
public String GETnameItem(){
return this.nameItem;
}
public void SETnameItem(String nameItem){
this.nameItem=nameItem;
}
}
package gui;
import javax.swing.*;
import java.sql.*;
public class modelComboBoxRS extends DefaultComboBoxModel {
// получение данных из запроса ResultSet
public void setDataSource(ResultSet rs, int colID, int colName) throws SQLException {
// очистим список
removeAllElements();
// добавим новые элементы из базы данных
while ( rs.next() ) {
// получаем строки из столбца column
objItemCombo objItem =new objItemCombo(rs.getInt(colID),rs.getString(colName));
addElement(objItem.GETnameItem());
}
}
}
package gui;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.border.*;
import java.sql.ResultSet;
import DBdevice.RS_DBdevice;
import java.sql.SQLException;
public class DeviceDialogFrame extends JDialog{
private modelComboBoxRS mdlComboBox;
public DeviceDialogFrame(JFrame frm){
super(frm,"Техническое устрйство");
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setModal(true);
setSize(350,600);
Box boxV = Box.createVerticalBox();
//JLabel lblType = new JLabel("Тип технического устройства:");
JLabel lbl_typeDevice=new JLabel("Тип технического устройства:");
lbl_typeDevice.setAlignmentX(JComponent.LEFT_ALIGNMENT);
RS_DBdevice RSdevice = new RS_DBdevice();
ResultSet RS = RSdevice.RStypeDevice();
mdlComboBox=new modelComboBoxRS();
try {
mdlComboBox.setDataSource(RS,1,2);
RS.close();
} catch (SQLException e) {
e.printStackTrace();
}
JComboBox<objItemCombo> cmbType = new JComboBox<objItemCombo>();
cmbType.setModel(mdlComboBox);
cmbType.setAlignmentX(JComponent.LEFT_ALIGNMENT);
cmbType.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
int index = cmbType.getSelectedIndex();
JOptionPane.showMessageDialog(DeviceDialogFrame.this,"index: "+index);
Object objItemC = cmbType.getModel().getElementAt(index);
JOptionPane.showMessageDialog(DeviceDialogFrame.this,"index: "+objItemC);
}
}); |
|
Пытался через getElementAt(index) но ничего не вышло