我有这段代码用于显示 JTable 中的一些数据:
public class ShowResults extends JFrame {
public ShowResults(List<String> list) {
setSize(1000, 1000);
setLocationRelativeTo(null); //center
setVisible(true);
String[][] table_data = new String[pics.size()][table_header.length];
for (int i = 0; i < pics.size(); i++) {
//Fill table with data
}
JTable table = new JTable(new DefaultTableModel(table_data, table_header)) {
@Override
public boolean isCellEditable(int row, int column) {
//disable table editing
return false;
}
};
JScrollPane scroll_pane = new JScrollPane(table);
table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
table.getTableHeader().setReorderingAllowed(false);
table.getTableHeader().setResizingAllowed(false);
this.setLayout(new FlowLayout());
this.add(scroll_pane);
}
}
但是表格看起来并不像我预期的那样。我希望滚动条仅垂直(现在是水平),表头显示整个标题名称(现在表由于某种我不知道的原因被包装)。 我该怎么办?
最佳答案
I would that scroll bar in only vertical (now is horizontal) and header of table show entire header names (now table is wrapped for some reason i don't know).
原因是你设置了新的FlowLayout作为内容 Pane 的布局管理器。该布局管理器遵循组件的首选大小,因此可以防止滚动 Pane 根据您的意愿调整大小。我会保留默认布局管理器,即 BorderLayout ,并将滚动 Pane 添加到 CENTER
位置。
另一方面,您应该在将所有组件添加到其内容 Pane 之后使框架可见。
关于java - JTable里面的JScrollPane单元格大小和表格大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27942667/