代码之家  ›  专栏  ›  技术社区  ›  Aaron Digulla

调整JFrame的大小时,如何防止JTable的列调整大小?

  •  3
  • Aaron Digulla  · 技术社区  · 14 年前

    此代码将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);
    

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

    我该怎么办

    1. 用户仍可以调整列的大小
    2. 是否考虑当前宽度?也就是说,当我改变一列的宽度时,其他列的宽度不应该改变。
    1 回复  |  直到 14 年前
        1
  •  3
  •   camickr    14 年前
    table.setAutoResizeMode( JTable.AUTO_RESIZE_OFF );
    

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