【问题标题】:JTable inside JScrollPane cell size and table sizeJScrollPane 内的 JTable 单元格大小和表格大小
【发布时间】:2015-01-15 05:39:09
【问题描述】:

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

但桌子看起来不像我预期的那样。我希望该滚动条仅垂直(现在是水平的)并且表格的标题显示整个标题名称(现在表格由于某种原因被包装,我不知道)。 我该怎么办?

【问题讨论】:

  • 什么是table_header?什么是图片?您能否提供一个完整的运行示例。也让您更容易理解您的问题

标签: java swing jtable jscrollpane


【解决方案1】:

我希望滚动条只在垂直方向(现在是水平方向),表格标题显示整个标题名称(现在表格由于某种原因被包装了,我不知道)。

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

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

【讨论】:

    【解决方案2】:

    我会使用网格布局。现在也尝试删除 scroll_pane 看看是否有区别。我自己在使用 JScrollPane 时遇到了问题。

    【讨论】:

      猜你喜欢
      • 2011-09-08
      • 1970-01-01
      • 2017-06-30
      • 1970-01-01
      • 2013-05-26
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多