我想增加表格在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);
这是输出
我注意到如果我不使用Scroll pan,则列名称会消失并且大小会增加..
但我也希望列名出现..
答案 0 :(得分:3)
保留滚动窗格,然后将jp1
替换为
AKA改变:
jf.add(jp1);
到
jf.add(jsp);
这将使桌子占据整个绿地*。如果这不是您想要的,请使用嵌套布局。
*取决于LayoutManager。在这种情况下,使用FlowLayout
,它不会调整组件的大小。如果您使用GridLayout
或BorderLayout
,则会填充整个绿色区域。