JTable里面的JScrollPane单元格大小和表大小

时间:2015-01-14 12:10:39

标签: java swing jtable jscrollpane

我有这段代码用于在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);
    }
}

但是表格并不像我期望的那样。我想滚动条只在垂直(现在是水平)和表头显示整个标题名称(现在表包装由于某种原因,我不知道)。 我该怎么办?

2 个答案:

答案 0 :(得分:1)

  

我的滚动条只是垂直(现在是水平的),表格的标题显示整个标题名称(现在桌子因某些原因包裹起来我不知道)。

原因是您将新的FlowLayout设置为内容窗格的布局管理器。此布局管理器遵循组件首选大小,因此可以防止滚动窗格根据需要调整大小。我将保留默认布局管理器BorderLayout,并将滚动窗格添加到CENTER位置。

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

答案 1 :(得分:0)

我会使用网格布局。同时尝试删除scroll_pane,看看是否有所作为。我自己使用JScrollPane遇到了问题。