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=]
//怎么办?
14 个解决方案
#1
http://topic.csdn.net/u/20090319/15/21f41826-e960-49eb-bc6d-a283c8be1e78.html
這里面 有幾個小程序段 你可以看看 ~ 應該差不多
這里面 有幾個小程序段 你可以看看 ~ 應該差不多
#2
是不是哦
#3
可以使用JTable的public void setDefaultRenderer(Class<?> columnClass,TableCellRenderer renderer)
要你自己实现一个TableCellRenderer ,那个columnClass就是你checkbox的class
这就要牵扯到了swing的Renderer机制了,初次理解可能有点困难,可以先学着使用JList来显示自定义数据。
同样也是给JList设置一个自定义的CellRenderer。
要你自己实现一个TableCellRenderer ,那个columnClass就是你checkbox的class
这就要牵扯到了swing的Renderer机制了,初次理解可能有点困难,可以先学着使用JList来显示自定义数据。
同样也是给JList设置一个自定义的CellRenderer。
#4
我还没用过JTable,是来接分的
#5
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;
}
}
#6
有了 renderer 在加个editor 否则编辑还是textfild编辑
#7
对,要自己设置渲染器(renderer)和编辑器(editor)
#8
不太明白 但同意三楼的。。。。。。。。。
#9
up,也不是很明白,对于渲染器(renderer)和编辑器(editor)没怎么用过,以后会去试试
#10
使用renderer和editor,
#11
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相关的文档就知道了。
#12
col.setCellEditor(new DefaultCellEditor(new JCheckBox()));
我不是已经设置editor了吗?
#13
Swing中JTable要内容要设成checkbox很简单,只要将tablemodel的列属性设成boolean就行了。这是JTable默认的。
#14
终于有个明白人了。
#1
http://topic.csdn.net/u/20090319/15/21f41826-e960-49eb-bc6d-a283c8be1e78.html
這里面 有幾個小程序段 你可以看看 ~ 應該差不多
這里面 有幾個小程序段 你可以看看 ~ 應該差不多
#2
是不是哦
#3
可以使用JTable的public void setDefaultRenderer(Class<?> columnClass,TableCellRenderer renderer)
要你自己实现一个TableCellRenderer ,那个columnClass就是你checkbox的class
这就要牵扯到了swing的Renderer机制了,初次理解可能有点困难,可以先学着使用JList来显示自定义数据。
同样也是给JList设置一个自定义的CellRenderer。
要你自己实现一个TableCellRenderer ,那个columnClass就是你checkbox的class
这就要牵扯到了swing的Renderer机制了,初次理解可能有点困难,可以先学着使用JList来显示自定义数据。
同样也是给JList设置一个自定义的CellRenderer。
#4
我还没用过JTable,是来接分的
#5
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;
}
}
#6
有了 renderer 在加个editor 否则编辑还是textfild编辑
#7
对,要自己设置渲染器(renderer)和编辑器(editor)
#8
不太明白 但同意三楼的。。。。。。。。。
#9
up,也不是很明白,对于渲染器(renderer)和编辑器(editor)没怎么用过,以后会去试试
#10
使用renderer和editor,
#11
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相关的文档就知道了。
#12
col.setCellEditor(new DefaultCellEditor(new JCheckBox()));
我不是已经设置editor了吗?
#13
Swing中JTable要内容要设成checkbox很简单,只要将tablemodel的列属性设成boolean就行了。这是JTable默认的。
#14
终于有个明白人了。