0

问题1)我有一个JPanel ps,它有一个空布局;一个 JscolPane 滚动窗格和一个 JTable 表。我已将表格添加到 scrollPane,然后将 scrollPane 添加到 Jpanel ps。以下是我的代码: -

ps = new JPanel();
ps.setLayout(null);
ps.setSize(1000,600);

scrollPane = new JScrollPane();
scrollPane.setBounds(10, 119, 975, 300);
        scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
ps.add(scrollPane);

table = new JTable(data, columns);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
scrollPane.setViewportView(table);

它应该创建一个带有水平滚动条的scrollPane,并且当列数增加以至于无法在单个屏幕上处理时,滚动条有助于显示内容。请参阅“AUTO_RESIZE_OFF”。

但是发生的是,所有列的大小都是固定的(我不知道有多少个字符。所有列的宽度都是相同的。)。因此,列的名称不是完全可见的。

我的问题是,是否可以增加显示的列的宽度,或者显示所有具有自己宽度的列?另外,如何启用滚动?

4

2 回答 2

4
  1. 是的。见TableColumn。通常我过去所做的是使用ResultSetMeta数据来构建列模型。查看如何使用表格了解更多信息
  2. 可以,但是JTable会麻烦一些。看看打印打印 JTable。如果你有时间看的话,有一些关于 SO 的很好的例子。
  3. 在数据库端过滤数据总是更好。一旦你有一组结果,你想过滤该组,你可以使用它ResultSetMetaData 来确定你想要分组的列。同样,如果您还没有结果,您可以使用DatabaseMetaData来确定数据库中表的列
于 2013-01-27T02:20:34.773 回答
3
  1. 关于问题 1 和 2 中的打印作业:我建议您查看jasper 报告
  2. 对于你的问题 3,我不知道你的数据库结构是什么,所以很难说,但看起来你正在寻找的是 JTable 中的行跨度。所以,试着在谷歌周围寻找这样的东西
于 2013-01-27T02:20:38.157 回答