jtable 中如何插入 checkbox ,(在DefaultTableModel中)---------------------------------------小问题,急。。。高分诶,大侠们

红烧蹄膀饭 2009-06-03 04:47:19

import javax.swing.*;

import java.util.*;
import javax.swing.table.*;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

import javax.swing.event.*;
import java.lang.String;

public class no2 extends JApplet
{
Vector srcdata = new Vector();
Vector rowdata = new Vector();
Vector cname = new Vector(4);
JTable jt = new JTable();
DefaultTableModel model = new DefaultTableModel(srcdata,cname);
JScrollPane js = new JScrollPane(); //创建滚动窗


public void init()
{
setSize(500,300);
Container c = this.getContentPane();
JPanel jp2 = new JPanel(); //装载表格的面板
rowdata.add("njnS");
rowdata.add("");
rowdata.add("");
JCheckBox checkBox = new JCheckBox(); //-----------------问题的地方

rowdata.add(checkBox);
cname.add(columnName[0]);
cname.add(columnName[1]);
cname.add(columnName[2]);
cname.add(columnName[3]);
srcdata.add(rowdata);
jt.setModel(model);
jt.setCellSelectionEnabled(true); //是能否选中一个cell,也就是一行和一列的交叉单元格
jt.setColumnSelectionAllowed(true);
js.add(jt);
c.add(js);
}
}

//我想在jtable里添加checkbox 看到了吧,可是添加进去显示出来的却是一行文字:javax.swing.JCheckBox[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.5,border=javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@1982fc1,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=2,bottom=2,right=2],paintBorder=false,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=]

//怎么办?
...全文
664 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
桂堂春 2009-12-31
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 diggywang 的回复:]
Swing中JTable要内容要设成checkbox很简单,只要将tablemodel的列属性设成boolean就行了。这是JTable默认的。
[/Quote]

终于有个明白人了。
wunan320 2009-06-09
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 a276202460 的回复:]
有了 renderer 在加个editor 否则编辑还是textfild编辑
[/Quote]


col.setCellEditor(new DefaultCellEditor(new JCheckBox()));

我不是已经设置editor了吗?
diggywang 2009-06-09
  • 打赏
  • 举报
回复
Swing中JTable要内容要设成checkbox很简单,只要将tablemodel的列属性设成boolean就行了。这是JTable默认的。
吐泡泡的鱼 2009-06-08
  • 打赏
  • 举报
回复

tabImgRes = new JTable() {
public TableCellEditor getCellEditor(int row, int column) {
switch (column) {
case ImgResTableModel.COL_VALUE:
return null;
case ImgResTableModel.COL_PARAM:
switch (row) {
case XStyle.IMAGE_ARROW:
case XStyle.IMAGE_CURSOR:
return new DefaultCellEditor(cboxDirect);
case XStyle.IMAGE_BG:
return new DefaultCellEditor(cboxPollType);
}
break;
}
return super.getCellEditor(row, column);
}
};


随手摘了一小段以前写的代码,大概就是这么个意思,楼主看一下CellRender和CellEditor相关的文档就知道了。
shmilycharlene 2009-06-08
  • 打赏
  • 举报
回复
使用renderer和editor,
zhulin1113 2009-06-06
  • 打赏
  • 举报
回复
up,也不是很明白,对于渲染器(renderer)和编辑器(editor)没怎么用过,以后会去试试
qwer11123 2009-06-05
  • 打赏
  • 举报
回复
不太明白 但同意三楼的。。。。。。。。。
qusic 2009-06-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 a276202460 的回复:]
有了 renderer 在加个editor 否则编辑还是textfild编辑
[/Quote]
对,要自己设置渲染器(renderer)和编辑器(editor)
wunan320 2009-06-04
  • 打赏
  • 举报
回复

JTable table = new JTable();
TableColumn col = table.getColumn(columnName);
col.setCellEditor(new DefaultCellEditor(new JCheckBox()));
col.setCellRenderer(new MyCheckBoxRenderer());
//下面是个Renderer类
public class MyCheckBoxRenderer
extends JCheckBox
implements TableCellRenderer {

public MyCheckBoxRenderer() {}

public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected,
boolean hasFocus,
int row, int column) {
if (isSelected) {
setForeground(table.getSelectionForeground());
setBackground(table.getSelectionBackground());
}
else {
setForeground(table.getForeground());
setBackground(table.getBackground());
}
if (value == null || !(value instanceof Boolean)) {
value = new Boolean(false);
}
setSelected( ( (Boolean) value).booleanValue());
return this;
}
}
一洽客服系统 2009-06-04
  • 打赏
  • 举报
回复
有了 renderer 在加个editor 否则编辑还是textfild编辑
Ostroff 2009-06-03
  • 打赏
  • 举报
回复
我还没用过JTable,是来接分的
qusic 2009-06-03
  • 打赏
  • 举报
回复
可以使用JTable的public void setDefaultRenderer(Class<?> columnClass,TableCellRenderer renderer)
要你自己实现一个TableCellRenderer ,那个columnClass就是你checkbox的class
这就要牵扯到了swing的Renderer机制了,初次理解可能有点困难,可以先学着使用JList来显示自定义数据。
同样也是给JList设置一个自定义的CellRenderer。
红烧蹄膀饭 2009-06-03
  • 打赏
  • 举报
回复
是不是哦
horizonlyhw 2009-06-03
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20090319/15/21f41826-e960-49eb-bc6d-a283c8be1e78.html
這里面 有幾個小程序段 你可以看看 ~ 應該差不多

62,615

社区成员

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

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