在JTable中使用ProgressBar有问题了

ImHow 2004-05-05 02:13:15
我搜索了一下,参考了这个帖子:
http://search.csdn.net/expert/topic/54/5401/2003/9/25/2297227.xml

这这个调用里:
jTable.getColumn("identifier").setCellRenderer(new ProgressCellRender());

identifier指什么呢?是列名吗?我把一个列名传递过去会报错啊
究竟该怎样使用呢?
多谢


...全文
100 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ImHow 2004-05-06
  • 打赏
  • 举报
回复
public class ProgressCellRender extends DefaultTableCellRenderer {

public ProgressCellRender()
{
}

public Component getTableCellRendererComponent(JTable table,
Object value,
boolean isSelected,
boolean hasFocus,
int row,
int column)
{
JProgressBar progressBar = new JProgressBar();
progressBar.setMinimum(0);
progressBar.setMaximum(100);
progressBar.setValue(0);
progressBar.setBackground(Color.white);
progressBar.setBorder(BorderFactory.createEmptyBorder());
progressBar.setForeground(new Color(110, 92, 255));
if (value != null)
{
int progressValue = ((Integer)value).intValue();
progressBar.setValue(progressValue);
if (isSelected)
{
progressBar.setBackground(new Color(206, 207, 255));
}
else
{
progressBar.setBackground(Color.white);
}
}
progressBar.setToolTipText(String.valueOf(progressBar.getValue()) + "%");
return this;
}

}

/////////////////////////////////////////////////////////

public class MyTableWithProcessbar extends Panel {

private javax.swing.JTable jTable = null;
private DefaultTableModel model = new DefaultTableModel();
private int rows = 3, cols = 5;
private Object[] rowData = new Object[cols];
/**
* This is the default constructor
*/
public MyTableWithProcessbar() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setLayout(null);
this.add(getJTable(), null);
this.setSize(490, 200);
this.setBackground(new java.awt.Color(204, 204, 204));


}
/**
* This method initializes jTable
*
* @return javax.swing.JTable
*/
private javax.swing.JTable getJTable() {
if (jTable == null) {
jTable = new JTable(model);
jTable.setBounds(41, 14, 375, 80);

for (int c = 0; c < cols; ++c)
model.addColumn("Column");

for (int r = 0; r < rows; ++r) {
for (int c = 0; c < cols; ++c) {
rowData[c] = "(" + r + "," + c + ")";
}
model.addRow(rowData);
}
jTable.getColumn("Column").setCellRenderer(new ProgressCellRender());

}
return jTable;
}
}
marvy 2004-05-06
  • 打赏
  • 举报
回复
类型转换异常。
能不能贴出你的代码来?
marvy 2004-05-06
  • 打赏
  • 举报
回复
jTable.getColumn("identifier").setCellRenderer(new ProgressCellRender());

identifier指什么呢?是列名吗?我把一个列名传递过去会报错啊

----------------------------------------------------------

指的是列名。
具体报的什么错?
ImHow 2004-05-06
  • 打赏
  • 举报
回复
ClassCastException()
ImHow 2004-05-06
  • 打赏
  • 举报
回复
up
帮帮忙阿
ImHow 2004-05-05
  • 打赏
  • 举报
回复
我查了API,并且修改了语句:

private DefaultTableModel model = new DefaultTableModel();
private JTable table = new JTable(model);

TableColumn tc = new TableColumn();
tc.setIdentifier("Progress");
model.addColumn(tc);

table.getColumn("Progress").setCellRenderer(new ProgressCellRender());

还是不行,是不是还有什么没有做的?

62,614

社区成员

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

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