我有这段代码用于显示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位置。

另一方面,在将所有组件添加到其内容窗格后,应该使框架可见。

09-06 01:49