如何在JTable的指定位置添加JComboBox? 网上有种方法,我4了4,但只能指定每行的某列为JComboBox,我想实现特定位置就出现一个JComboBox,不需要每行都有,怎么实现啊…… 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 设置CellEditor有很多方法,你用的是哪种先贴出来看看啊。 我用的是:jtable单元格里面添加jcombobox:JTable table1 = new JTable(2,2);JComboBox jcbox = new JComboBox();jcbox.addItem("第一项");jcbox.addItem("第二项");jcbox.addItem("第三项");jcbox.addItem("第四项");DefaultCellEditor ce = new DefaultCellEditor(jcbox);TableColumnModel cm = table1.getColumnModel();cm.getColumn(1).setCellEditor(ce); //此处的1为每一行的第二列,列号从0开始;还是从这里的一个朋友的BLOG上找到的,但只能实现每行的某列,不能指定位置…… JTable中有个prepareEditor方法,在里面判断,如果是指定的单元格,则将第一个参数设置为CheckBox型的 还没弄出来……能把关键代码写下吗?我先声明一个JComboBox cbo1=new JComboBox();JTable tab1=new JTable();cbo1.addItem("XXX");…………TableCellEditor ce=new DefaultCellEditor(cbo1);tab1.prepareEditor(ce,2,2);这样出不来啊…… 用 prepareEditor 还是 getCellEditor 啊?我机器上没装JDK,明天试试。 import javax.swing.table.AbstractTableModel; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ColumnModelTest{ public ColumnModelTest() { JFrame f = new JFrame(); /*由于我们的MyTable类继承了AbstractTableModel并且实作了getColmunCount(), getRowCount(),getValueAt()方法.因此我们可以通 *过MyTable来产生TableModel的实体. */ MyTable mt=new MyTable(); JTable t=new JTable(mt);//我们利用MyTable来建立JTable. JComboBox c = new JComboBox();//建立一个JComboBox的对象. c.addItem("Taipei");//我们在新建立的JComboBox对象里新增三个项目. c.addItem("ChiaYi"); c.addItem("HsinChu"); /*我们利用JTable所提供的getTableColumnModel()方法取得TableColumnModel对象, *再由TableColumnModel类所提供的getColumn()方 *法取得TableColumn对象,TableColumn类可针对表格中的每一行做具体的设置, *例如设置字段的宽度,某行的标头,设置输入较复杂的 *数据类型等等.在这里,我们利用TableColumn类所提供的setCellEditor()方法, *将JComboBox作为第二行的默认编辑组件. */ t.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(c)); t.setPreferredScrollableViewportSize(new Dimension(550, 30)); JScrollPane s = new JScrollPane(t); f.getContentPane().add(s, BorderLayout.CENTER); f.setTitle("ColumnModelTest"); f.pack(); f.setVisible(true); f.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public static void main(String args[]) { new ColumnModelTest(); } } public Class getColumnClass(int col)在这里过滤就行了 既然某一列都可以实现了,定位到某一行只是判断一下行即可呀if(row == ?) && (col == ?){ return new youreditor();} java内部类有什么缺点,会导致程序变得低效率么 java,菜鸟求救! JAVA必须配置环境吗 小弟请教高手?? tomcat 在局域网内访问 请教: eclipse设置问题 在java中,一个窗口如何控制另一个窗口如关闭 编好的APPLET如何能够不依靠编程环境直接调用? Jbuider7中的光标位置不对。 春节散分。。 JBoss3连接MsSqlServer2000 用哪种JDBC驱动比较好?? 一个非常可笑的运行错误.简直就是奇异. 请问web页面设计需求用什么工具比较好?
jtable单元格里面添加jcombobox:
JTable table1 = new JTable(2,2);
JComboBox jcbox = new JComboBox();
jcbox.addItem("第一项");
jcbox.addItem("第二项");
jcbox.addItem("第三项");
jcbox.addItem("第四项");
DefaultCellEditor ce = new DefaultCellEditor(jcbox);
TableColumnModel cm = table1.getColumnModel();
cm.getColumn(1).setCellEditor(ce); //此处的1为每一行的第二列,列号从0开始;还是从这里的一个朋友的BLOG上找到的,但只能实现每行的某列,不能指定位置……
能把关键代码写下吗?
我先声明一个JComboBox cbo1=new JComboBox();
JTable tab1=new JTable();
cbo1.addItem("XXX");……
……
TableCellEditor ce=new DefaultCellEditor(cbo1);
tab1.prepareEditor(ce,2,2);这样出不来啊……
我机器上没装JDK,明天试试。
在这里过滤就行了
if(row == ?) && (col == ?){
return new youreditor();
}