Создайте jTable
, используя jCombobox
во 2-м столбце, список значений которого зависит от элемента, введенного в 1st column
Последовательные значения в jCombobox
могут варьироваться в зависимости от значения, введенного в 1st Column
Что мне нужно, так это простое решение для ответа на поставленный выше вопрос.
Разные JComboBox
требуются для каждой строки во втором столбце
public class NewJFrame extends javax.swing.JFrame {
public NewJFrame() {
initComponents();
int i = 0;
jComboBox3.addItem("material1");
jComboBox3.addItem("material2");
String v5[] = new String[23];
String v6[] = new String[23];
JScrollPane jScrollPane1 = new javax.swing.JScrollPane();
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(148, 148, 148)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(385, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(94, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(71, 71, 71))
);
pack();
JTable jTable1 = new javax.swing.JTable();
jTable1.setModel(new javax.swing.table.DefaultTableModel(
new Object[][] {
{
v5[0], v6[0]
}, {
v5[1],
v6[1]
}, {
v5[2],
v6[2]
}, {
v5[3],
v6[3]
}, {
v5[4],
v6[4]
}, {
v5[5],
v6[5]
}, {
v5[6],
v6[6]
}, {
v5[7],
v6[7]
}, {
v5[8],
v6[8]
}, {
v5[9],
v6[9]
}, {
v5[10],
v6[10]
},
},
new String[] {
"Material",
"Batch",
}
));
if (jTable1.getColumnModel().getColumnCount() > 0) {
jTable1.getColumnModel().getColumn(0).setCellEditor(new DefaultCellEditor(jComboBox3));
};
if (jTable1.getColumnModel().getColumnCount() > 0) {
jTable1.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(jComboBox8));
};
jScrollPane1.setViewportView(jTable1);
jTable1.getModel().addTableModelListener(new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
int j = jTable1.getSelectedRow();
String material = jTable1.getValueAt(j, 0).toString();
try {
jComboBox8.removeAllItems();
if (jComboBox3.equals("material1")) {
jComboBox8.addItem("1");
} else {
jComboBox8.addItem("2");
}
} catch (Exception et) {
JOptionPane.showMessageDialog(null, et);
}
}
});
}
private void initComponents() {
jComboBox8 = new javax.swing.JComboBox < > ();
jComboBox3 = new javax.swing.JComboBox < > ();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 985, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 596, Short.MAX_VALUE)
);
pack();
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
}