修正javagui表的长度

修正javagui表的长度,java,swing,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 JPa

我想增加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);
这是输出

我注意到,如果我不使用滚动平移,列名将消失,大小将增大


但是我也希望列名出现..

保留滚动窗格,并用它替换
jp1

又名变更:

jf.add(jp1);

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


*取决于布局经理。在这种情况下,将使用不会调整组件大小的
FlowLayout
。如果您使用的是
GridLayout
BorderLayout
,则整个绿色区域将被填满。

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

又名变更:

jf.add(jp1);

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


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

您使用的是像
MigLayout
这样的布局管理器吗?这通常会简化事情,请看这里:您的变量名非常糟糕。使您的代码很难阅读。JFrames默认为BorderLayout,因此在向JFrame添加组件时,请确保设置BorderLayout位置,例如BorderLayout.CENTER。几乎可以肯定,中间位置是您想要放置带有表格的滚动窗格的位置。删除滚动窗格时,表格标题消失的原因是,当表格添加到滚动窗格时,表格的JTableHeader会自动设置为JScrollPanes列标题视图。如果没有滚动条,您需要自己将JTableHeader添加到布局中。您是否使用类似于
MigLayout
的布局管理器?这通常会简化事情,请看这里:您的变量名非常糟糕。使您的代码很难阅读。JFrames默认为BorderLayout,因此在向JFrame添加组件时,请确保设置BorderLayout位置,例如BorderLayout.CENTER。几乎可以肯定,中间位置是您想要放置带有表格的滚动窗格的位置。删除滚动窗格时,表格标题消失的原因是,当表格添加到滚动窗格时,表格的JTableHeader会自动设置为JScrollPanes列标题视图。如果没有滚动条,您需要自己将JTableHeader添加到布局中。没问题!将答案标记为已接受,以便人们知道此问题已得到回答。ThanksJPanel将FlowLayout作为API中的默认值(只接受getPreferredSize,不可调整大小),必须更改为BorderLayout、event。没问题!将答案标记为已接受,以便人们知道此问题已得到回答。ThanksJPanel将FlowLayout作为API中的默认值(只接受getPreferredSize,不可调整大小),必须更改为BorderLayout、event。网格布局