修复java GUI表的长度

时间:2017-05-09 15:43:42

标签: java swing

我想增加表格在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);

这是输出

enter image description here

我注意到如果我不使用Scroll pan,则列名称会消失并且大小会增加..

enter image description here

但我也希望列名出现..

1 个答案:

答案 0 :(得分:3)

保留滚动窗格,然后将jp1替换为

AKA改变:

jf.add(jp1);

jf.add(jsp);

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

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