swing jtable 中某一列有jtextfield又有jcombox怎么做 swing jtable 中某一列有jtextfield又有jcombox怎么做急急急 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以先实现一个继承JPanel的并包含jtextfield和jcombox的mypanel,然后把自己实现的mypanel数组初始化到jtable中 技术上是可以的,而且应该并不太困难:但我觉得你大致需要自己实现一个TableCellRenderer,加入到TableColumnModel里。因为:TableCellRenderer.getTableCellRendererComponent传过来的参数有 表格和当前所处的行列以及值,所以,你完全可以根据需求,判断后返回不同的component。 JComboBox moonCombo = new JComboBox();for (int i = 0; i <= 20; i++) moonCombo.addItem(i);TableColumnModel columnModel = table.getColumnModel();TableColumn moonColumn = columnModel.getColumn(PlanetTableModel.MOONS_COLUMN);moonColumn.setCellEditor(new DefaultCellEditor(moonCombo)); class MyEditor extends DefaultCellEditor { public MyEditor(JTextField textField) { super(textField); } @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { if (row % 2 == 0) { return new JTextField(); } else { return new JComboBox(); } }}然后 table.getColumnModel().getColumn(0).setCellEditor(new MyEditor(new JTextField())); class MyEditor extends DefaultCellEditor { public MyEditor(JTextField textField) { super(textField); } @Override public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { if (row % 2 == 0) { return new JTextField(); } else { return new JComboBox(); } }}然后 table.getColumnModel().getColumn(0).setCellEditor(new MyEditor(new JTextField())); 请问eclipse如何关闭括号匹配与代码补全 讨论下面这个程序在jdk1.5下是否真的有内存泄露 Java现在需要classpath吗? 简单问题,javac 的搜索路径 如何启动tomcat?请教 请指教一个import的问题 繁简转换问题,请大家多多帮忙! reader 读出乱码! 如何让两个byte类型的变量a和b进行异或(^)操作,然后将结果存入另一个byte中? 请问JDK1.3文挡哪里有? my code! JAVA代码导出问题
加入到TableColumnModel里。因为:
TableCellRenderer.getTableCellRendererComponent
传过来的参数有 表格和当前所处的行列以及值,所以,你完全可以根据需求,判断后返回不同的component。
JComboBox moonCombo = new JComboBox();
for (int i = 0; i <= 20; i++)
moonCombo.addItem(i);TableColumnModel columnModel = table.getColumnModel();
TableColumn moonColumn = columnModel.getColumn(PlanetTableModel.MOONS_COLUMN);
moonColumn.setCellEditor(new DefaultCellEditor(moonCombo));
class MyEditor extends DefaultCellEditor { public MyEditor(JTextField textField) {
super(textField);
} @Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected,
int row, int column) {
if (row % 2 == 0) {
return new JTextField();
} else {
return new JComboBox();
}
}
}然后 table.getColumnModel().getColumn(0).setCellEditor(new MyEditor(new JTextField()));
class MyEditor extends DefaultCellEditor { public MyEditor(JTextField textField) {
super(textField);
} @Override
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected,
int row, int column) {
if (row % 2 == 0) {
return new JTextField();
} else {
return new JComboBox();
}
}
}然后 table.getColumnModel().getColumn(0).setCellEditor(new MyEditor(new JTextField()));