gpt4 book ai didi

java - 包含表内枚举值的 JCombobox

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:28:54 25 4
gpt4 key购买 nike

我有一个包含带值的枚举的类。 (名称)在其他类(class)中,我想在表格中输入一个将使用这些枚举值的 JCombobox 单元格类型。我的问题是在字符串值和枚举之间进行组合。例如枚举类:

enum item_Type {entree, main_Meal, Dessert, Drink}

例如表类:setTitle("添加新项目"); 设置大小(300, 80); setBackground( 颜色.灰色 );

    // Create a panel to hold all other components
topPanel = new JPanel();
topPanel.setLayout( new BorderLayout() );
getContentPane().add( topPanel );

//new JComboBox(item_Type.values());
JComboBox aaa = new JComboBox();
aaa = new JComboBox(item_Type.values());
TableColumn sportColumn = table.getColumnModel().getColumn(2);

// Create columns names
String columnNames[] = {"Item Description", "Item Type", "Item Price"};

// Create some data
String dataValues[][] = {{ "0", aaa, "0" }};
// Create a new table instance
table = new JTable( dataValues, columnNames );

// Add the table to a scrolling pane
scrollPane = new JScrollPane( table );
topPanel.add( scrollPane, BorderLayout.CENTER );

我知道在 dataValues 数组中我不能使用 aaa(枚举 jcombobox)。我该怎么做?

提前致谢。

最佳答案

你需要设置一个TableCellEditorJTable 上显示组合框。

TableColumn column = table.getColumnModel().getColumn(2);
column.setCellEditor(new DefaultCellEditor(aaa));

在您的 dataValues 数组中,只需为组合框使用一个占位符:

String dataValues[][] = {{ "0", "entree", "0" }};

当然,您需要在创建表之后设置列编辑器:

String dataValues[][] = {{ "0", "entree", "0" }};
JTable table = new JTable(dataValues, columnNames);
TableColumn column = table.getColumnModel().getColumn(2);
column.setCellEditor(new DefaultCellEditor(aaa));

我强烈建议您查看 How to Use Tables教程,如果你还没有的话。它对此进行了更详细的解释,并包含示例代码。

关于java - 包含表内枚举值的 JCombobox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2708272/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com