我想增加桌子在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,列名就会消失,大小也会增加。
但我也希望列名出现。
最佳答案
保留滚动窗格,并将其替换为jp1
,
又名变更:
jf.add(jp1);
至
jf.add(jsp);
这将使桌子占据整个绿色区域*。如果这不是您想要的,请使用嵌套布局。
*取决于LayoutManager。在这种情况下,使用
FlowLayout
不会调整组件的大小。如果您使用GridLayout
或BorderLayout
,则整个绿色区域将被填充。关于java - 固定Java GUI表的长度,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43874287/