Создайте JTable с jCombobox во 2-м столбце, который предоставляет определенный список значений в зависимости от 1-го столбца. - PullRequest
0 голосов
/ 04 июня 2019

Создайте 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);
            }
        });
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...