在JTable控件,添加JComboBox控件,如何得到控件呢
这里报错:
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();
}
}