我有这段代码用于显示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);
}
}
但是桌子看起来并不像我期望的那样。我会只在垂直(现在是水平)中滚动条和表的标题显示整个标题名称(由于某种原因,现在表已包装,我不知道)。
我能怎么做?
最佳答案
我会只在垂直(现在是水平)中滚动条和表的标题显示整个标题名称(由于某种原因,现在表已包装,我不知道)。
原因是您将新的FlowLayout设置为内容窗格的布局管理器。该布局管理器遵循组件的首选大小,因此可以防止滚动窗格根据需要调整大小。我将保留默认的布局管理器,即BorderLayout,然后将滚动窗格添加到CENTER
位置。
另一方面,在将所有组件添加到其内容窗格后,应该使框架可见。