当我调整JFrame的大小时,如何保持JTable的列不会调整大小?

时间:2010-07-27 15:20:40

标签: java swing layout jtable column-width

此代码将JTable放入JFrame(整个UI的唯一组件):

    JFrame frame = new JFrame( "Title");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JTable table = appender.createTable();
    JScrollPane scrollPane = new JScrollPane(table);
    table.setFillsViewportHeight(true);
    frame.getContentPane().add(scrollPane, BorderLayout.CENTER);

    frame.pack();
    frame.setVisible(true);

我也有一些代码来设置列的首选大小。

没什么特别的。当UI打开时,表占据整个视图,我没有滚动条。列的组合优选宽度需要比窗口宽的更多水平空间。尽管如此,没有水平滚动条,列太窄。

我该怎么做

  1. 用户仍然可以调整列
  2. 目前的宽度是否受到尊重?即当我更改一列的宽度时,其他列的宽度不应更改。

1 个答案:

答案 0 :(得分:3)

table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );

您还可以将包含该表格的滚动窗格添加到JPanel,然后将该面板添加到该框架中。这样,面板将改变大小,而不是滚动窗格。