0

我添加panel4到 scrollPane,但我的应用程序没有改变。这是我的代码:

   public class Bill extends JPanel {
      //some Jlabels, JComboBox......
      public Bill(){

      JPanel panel1 = new JPanel();
      panel1.setLayout(new GridLayout(7,1,10,20));
      //add some labels to panel

      JPanel panel2 = new JPanel();
      panel2.setLayout(new GridLayout(7,4,10,10 ));

        //add some components to panel

      JPanel panel3=new JPanel(new GridLayout(4,1,10,10));
      panel3.add(CRTA);
      panel3.add(UKUPNO);
      panel3.add(jbtView);
      panel3.add(jbtCancel);

最后是 panel4

     JPanel panel4=new JPanel();
     panel4.add(panel1, BorderLayout.WEST);
     panel4.add(panel2, BorderLayout.CENTER);

     JScrollPane scrollPane = new JScrollPane();
     scrollPane.getViewport().add( panel4 );  
     add(scrollPane,BorderLayout.CENTER);
     add(panel3, BorderLayout.SOUTH);

这就是我得到的

在此处输入图像描述

矩形内是 panel4(带有数字和组合框的面板)

这是我改变尺寸的时候 在此处输入图像描述

没有滚动显示

4

2 回答 2

2
JPanel panel4=new JPanel();
panel4.add(panel1, BorderLayout.WEST);
panel4.add(panel2, BorderLayout.CENTER);

默认情况下,JPanel 使用 FlowLayout 始终尊重组件的首选大小。您尝试指定的约束将被忽略。

你可以试试:

JPanel panel4=new JPanel( new BorderLayout() );
于 2013-02-18T20:33:41.120 回答
2

基本上,您应该在 panel4(包括 panel3)上添加所有内容,然后在JScrollPane. 之后,将其添加JScrollPaneCENTER.JTabbedPane

也永远不要调用setXXXSizeJButton的方法。

编辑

我玩了一下你的想法:

在此处输入图像描述

我希望这将帮助您了解您的 UI 的外观。再说一遍:不要调用setXXXSize方法,让一些其他的东西来确定组件的大小,比如字体大小,以防JTextField“Total”权限或“热饮”面板JLabel中这些图标的大小。JButton

于 2013-02-18T22:08:09.037 回答