我有这段代码用于在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);
}
}
但是表格并不像我期望的那样。我想滚动条只在垂直(现在是水平)和表头显示整个标题名称(现在表包装由于某种原因,我不知道)。 我该怎么办?
答案 0 :(得分:1)
我的滚动条只是垂直(现在是水平的),表格的标题显示整个标题名称(现在桌子因某些原因包裹起来我不知道)。
原因是您将新的FlowLayout设置为内容窗格的布局管理器。此布局管理器遵循组件首选大小,因此可以防止滚动窗格根据需要调整大小。我将保留默认布局管理器BorderLayout,并将滚动窗格添加到CENTER
位置。
另一方面,在将所有组件添加到其内容窗格后,您应该使框架可见。
答案 1 :(得分:0)
我会使用网格布局。同时尝试删除scroll_pane,看看是否有所作为。我自己使用JScrollPane遇到了问题。