将项目从JList复制到JTable

时间:2012-06-19 12:48:47

标签: swing jtable jframe jbutton jlist

我有一个带有JList的简单JFrame,一个JTable和两个JButton,如下所示

enter image description here

我想使用“添加”按钮将所选项目从列表复制到表格,并通过“删除”按钮删除表格中的项目(添加时)。

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

您需要为从列表中获取所选项的按钮添加侦听器,并相应地修改表。以下是一些可以帮助您入门的代码:

        final JButton add = new JButton();
    final JButton remove = new JButton();
    final DefaultTableModel tableModel = new DefaultTableModel();
    final JTable table = new JTable(tableModel);
    final JList list = new JList();

    add.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            Object selectedPlanet = list.getSelectedValue();
            tableModel.addRow(new Object[] { selectedPlanet });
        }
    });
    remove.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            Object selectedPlanet = list.getSelectedValue();
            int columnContainingPlanets = 0;
            for (int index = columnContainingPlanets; index < tableModel.getRowCount(); index ++)
                if (tableModel.getValueAt(index, columnContainingPlanets).equals(selectedPlanet)) {
                    tableModel.removeRow(index);
                    break;
                }
        }
    });