62,615
社区成员
发帖
与我相关
我的任务
分享
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=]
//怎么办?
col.setCellEditor(new DefaultCellEditor(new JCheckBox()));
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);
}
};
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;
}
}