我想增加桌子在Jpanel上覆盖的宽度。

    JFrame jf = new JFrame();
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.setTitle("Person Table");
    jf.setSize(1100, 700);

    JPanel jp1 = new JPanel();jp1.setBackground(Color.green);

    JPanel jp2 = new JPanel();   jp2.setBackground(Color.red);

    jp1.setSize(1100, 400);
    jp2.setSize(980, 200);

    JTable jt = new JTable(data,columnNames);   jt.setSize(900, 350);
    jt.setBackground(Color.ORANGE);
            // Add table to JScrollpane
   JScrollPane sp = new JScrollPane(jt); sp.setSize(1000, 380);
   sp.setBackground(Color.CYAN);
   jp1.add(sp);

    jf.add(jp1);
    jf.add(jp2);
    jf.setVisible(true);


这是输出

java - 固定Java GUI表的长度-LMLPHP

我注意到,如果不使用Scroll Pan,列名就会消失,大小也会增加。

java - 固定Java GUI表的长度-LMLPHP

但我也希望列名出现。

最佳答案

保留滚动窗格,并将其替换为jp1

又名变更:

jf.add(jp1);




jf.add(jsp);


这将使桌子占据整个绿色区域*。如果这不是您想要的,请使用嵌套布局。

*取决于LayoutManager。在这种情况下,使用FlowLayout不会调整组件的大小。如果您使用GridLayoutBorderLayout,则整个绿色区域将被填充。

关于java - 固定Java GUI表的长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43874287/

10-11 04:04