猿问

当单元格中的JComboBox中有一个ItemEvent时,如何获得CellRow

当单元格中的JComboBox中有一个ItemEvent时,如何获得CellRow

我有一个包含JComboBox列的JTable。

我在JComboBox上附加了一个ItemListener,它可以处理任何更改。

但是,ItemListener没有获得已更改的ComboBox所在的行的方法。

我需要行号,以便在ComboBox有更改时对同一行中的另一列执行操作。

任何帮助都将不胜感激。


这是我的简短代码。我想要完成的是,当一个项目侦听器接收到一个更改时,获得ComboBox的TableRow。

import java.awt.*;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.io.IOException;import javax.swing.*;
import javax.swing.table.DefaultTableModel;import javax.swing.table.TableCellRenderer;import javax.swing.table.TableColumn;
public class Example extends JFrame {

    private static final long serialVersionUID = 1L;
    public static int maxX, maxY;
    public static final String[] columnHeads = {"Col 1", "Col 2", "Col 3"};

    public static void main(String args[]) throws IOException {
        Example example = new Example();
    }

    public Example() {
        //Create Table Model
        DefaultTableModel model = new DefaultTableModel();

        for (int index = 0; index < columnHeads.length; index++) {
            model.addColumn(columnHeads[index]);
        }

        //Create Table
        JTable table = new JTable(model);
        JScrollPane scrollPane = new JScrollPane(table);

        //List for ComboBox
        String[] list = {"Item1", "Item2", "Item3"};

        //Create ComboBox
        JComboBox itemTypes = attachComboBoxRenderer(table, 2, list);

        //Attach Item Listener
        itemTypes.addItemListener(new ComboBoxListener());
        ((DefaultTableModel) table.getModel()).insertRow(
            table.getRowCount(), new Object[]{"C1", "C2", ""});
        this.setTitle("Example");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container container = getContentPane();

        //MAIN Panel
        final JPanel main = new JPanel();
        main.setLayout(new GridBagLayout());
        main.add(scrollPane);

        container.add(main);
        this.pack();
        this.setVisible(true);
    }


jeck猫
浏览 542回答 2
2回答

素胚勾勒不出你

对于增编-这是去@Jeffs的方法-永远不要直接听编辑的话,他们应该只为一位大师服务(JTable F.I.)会愚弄其他人
随时随地看视频慕课网APP

相关分类

Java
我要回答