请教,JTable中有数据,但在JScrollPane中只显示表头不显示数据是因为什么

Charlo_T 2018-09-28 09:53:39
如题,JTable的getRowCount()能得到正确的行数,但是放到JScrollPane里之后只能看到表头,数据一行都没有显示出来,求解是因为什么

public void addTable(Vector<Vector<Object>> rowData,Vector<String> columnName) {
//jt = new JTable[]
//js = new JScrollPane[]
//number为计数器
if(this.number < this.countPages) {
DefaultTableModel dtm = new DefaultTableModel(rowData, columnName);

this.jt[number] = new JTable(dtm) {
public boolean isCellEditable(int row, int column)
{
return false;
}
};
JTableHeader head = jt[number].getTableHeader(); // 创建表格标题对象
head.setPreferredSize(new Dimension(head.getWidth(), 35));// 设置表头大小
head.setFont(new Font("楷体", Font.PLAIN, 14));// 设置表格字体
Font font = new Font("Menu.font", Font.PLAIN, 12);
this.jt[number].setFont(font);
this.jt[number].setRowHeight(25);
DefaultTableCellRenderer r = new DefaultTableCellRenderer();
r.setHorizontalAlignment(JLabel.CENTER);
this.jt[number].setDefaultRenderer(Object.class, r);
jt[number].getRowCount()
this.js[number] = new JScrollPane();
this.js[number].setViewportView(jt[number]);
this.js[number].setVisible(false);
add(js[number], BorderLayout.CENTER);
this.number = this.number + 1;
}
if(number == countPages){
this.js[0].setVisible(true);
this.number = 0;
}
}

JTable通过参数生成表格,然后放到JScrollPane里,别的地方一样的写法可以正常显示,放到这里就显示不出来数据,难受。
试过修改布局,并没有用
整体的思路是生成数个带有表格的JScrollPane,在主页面中通过按钮切换显示的页面,因此每个JScrollPane的布局位置都是一样的,不知道和这个有没有关系。。跪请大神帮忙解答
...全文
327 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2018-10-08
  • 打赏
  • 举报
回复
你没把 jtable 加入 jscrollpane 里吧,没看到添加语句
Charlo_T 2018-09-28
  • 打赏
  • 举报
回复
引用 5 楼 qq_39936465 的回复:
this.js[number].setVisible(false); 你设置的显示是false 不知道你程序其他地方有没有打开

我下面设置了当number达到最大值的时候将第一个JScrollPane设为可见了啊,自己测试的时候可以确定这段代码也跑了,界面JScrollPane显示出来就是只有表头没有数据
qq_39936465 2018-09-28
  • 打赏
  • 举报
回复
this.js[number].setVisible(false); 你设置的显示是false 不知道你程序其他地方有没有打开
Charlo_T 2018-09-28
  • 打赏
  • 举报
回复
引用 3 楼 qq_39936465 的回复:
不是你if 判断语句有问题就是你rowData数据没有传入。

问题不是JTable没有数据啊,我用getRowCount()查过它里面是有100条数据的,就是不知道因为什么显示不出来
qq_39936465 2018-09-28
  • 打赏
  • 举报
回复
不是你if 判断语句有问题就是你rowData数据没有传入。
Charlo_T 2018-09-28
  • 打赏
  • 举报
回复
引用 1 楼 qq_39936465 的回复:
jscrollpane 只能添加一个组件,你先要jtable 把内容添加好,再把jtable加入jscrollpane中,你的程序中没看到你往jtable中添加表行的内容。

我这个函数参数就是传进JTable的数据和表头呀,6-13行就是初始化JTable的
qq_39936465 2018-09-28
  • 打赏
  • 举报
回复
jscrollpane 只能添加一个组件,你先要jtable 把内容添加好,再把jtable加入jscrollpane中,你的程序中没看到你往jtable中添加表行的内容。

62,614

社区成员

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

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