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=]//怎么办?
解决方案 »
- java如何实现2维数组的增长
- jdom中调用setAttribute(Sring key,Sring value)时,如果key中带有冒号,则报错
- 谁能帮我,只剩10分了。谁回答,就为谁祈福,真的。。。。。。
- 怎样让Jbutton.setText();的文字不受Jbutton的大小影响啊?
- 如何在java程序中得到当前的jvm heap dump的信息
- 【求助】谁知道基于SWT的java报表制作工具
- 编译已经通过,但是在runtime时有NumberFormatException异常
- 【救急!】JPanel绘图的问题!帮帮小弟!!
- 关于synchronized的讨论
- 各位大侠,小弟想做一串口异步通信协议,不知道用java能不能做啊
- java 绘图GUI
- 高分求助----关于java生成缩略图的问题!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
這里面 有幾個小程序段 你可以看看 ~ 應該差不多
要你自己实现一个TableCellRenderer ,那个columnClass就是你checkbox的class
这就要牵扯到了swing的Renderer机制了,初次理解可能有点困难,可以先学着使用JList来显示自定义数据。
同样也是给JList设置一个自定义的CellRenderer。
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;
}
}
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相关的文档就知道了。