在JTable控件,添加JComboBox控件,如何得到控件呢

Taotesea 2016-03-28 12:47:27


这里报错:
comboBox = (JComboBox) table.getValueAt(0, 1);//报错,提示说String无法转为JComboBox类型
不要String值,而是要JComboBox控件,为什么?谢谢大家了:)

原码如下:
package _Test;
import javax.swing.*;
import java.awt.*;
import javax.swing.table.DefaultTableModel;

public class TableTest extends JFrame {
JPanel panel = (JPanel) getContentPane();
public JScrollPane scrollPane = new JScrollPane();
public JTable table = new JTable();
JComboBox c = new JComboBox();
public TableTest() {
init();
}

public void init() {
c.addItem("FOXCONN");
c.addItem("AOPEN");
c.addItem("MSI");
c.addItem("ACER");
table.setModel(setData());
table.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(c));
scrollPane.getViewport().add(table);
panel.add(scrollPane, BorderLayout.CENTER);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}

private DefaultTableModel setData() {
Object[][] BookInfo = {
{ "主板", "FOXCONN", "10", new Boolean(false) },
{ "CPU", "MSI", "200", new Boolean(true) }
};
String[] ColumnName = { "货物", "客户", "数量", "是否有出库" };
DefaultTableModel myData = new MyTableModel(ColumnName, 0);
myData.addRow(BookInfo[0]);
myData.addRow(BookInfo[1]);
return myData;
}

public static void main(String para[]) {
new TableTest();
}

public JComboBox getCombobox() {
JComboBox comboBox = new JComboBox();
comboBox = (JComboBox) table.getValueAt(0, 1);//报错,提示说String无法转为JComboBox类型
return comboBox;
}

}

class MyTableModel extends DefaultTableModel {
public MyTableModel(Object[] head, int n) {
super(head, n);
}

public Class getColumnClass(int columnIndex) {
return getValueAt(0, columnIndex).getClass();
}

}
...全文
73 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Taotesea 2016-03-30
  • 打赏
  • 举报
回复
自己顶......

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧