大家看看 swing中控件随着窗口大小改变而改变,这个不能
是不是布局管理器的问题
大家知道BoxLayout会随着窗口自动改变吗?

解决方案 »

  1.   

    知道 GridBagLayout 满足需求
      

  2.   

    看你的截图,觉得数据源配置器面板加入JSplitPane的方式可能有问题,否则他是可以随窗口改变大小的。
      

  3.   

    贴给你啦 
    我assignment超大一个   琢磨scrollpane只不过是其中一项痛苦 
    个人觉得是swing   JSrollPane有问题啦   sun德tutorial里的例子都是不太work的   我只不过是找出一个折衷的办法,让scollbar一定要show出来 我贴的是我总结出来的最简单的保证scroll得出来的例子 
    JPanel   d就是你要加其他组件的panel import   javax.swing.JFrame; 
    import   javax.swing.JPanel; 
    import   javax.swing.JScrollPane; import   java.awt.BorderLayout; 
    import   java.awt.Color; 
    import   java.awt.Dimension; public   class   TestScroll   extends   JFrame 

    private   JPanel   d; 
    private   JScrollPane   sp; public   TestScroll() 

    this.setTitle( "test!! "); 
    this.setDefaultCloseOperation(EXIT_ON_CLOSE); JPanel   cp   =   new   JPanel(); 
    cp.setBackground(Color.BLACK); 
    cp.setLayout(new   BorderLayout()); this.d   =   new   JPanel(); 
    d.setBackground(Color.WHITE); this.sp   =   new   JScrollPane(d); 
    cp.add(sp); 
    cp.setPreferredSize(new   Dimension(200,   200)); 
    this.setContentPane(cp); this.pack(); 
    this.setVisible(true); 
    this.scroll(); 
    } public   void   scroll() 

    d.setPreferredSize(new   Dimension(500,   500)); 
    d.revalidate(); 
    this.pack(); 
    this.setVisible(true); 
    } public   static   void   main(String[]   argv) 

    TestScroll   t   =   new   TestScroll(); 
    } } ================================================
    d.setPreferredSize(new   Dimension(500,   500)); 
    d.revalidate(); 
    this.pack(); 
    this.setVisible(true); 
    ================================================
      

  4.   

    从楼主给的图里面可以看出几个问题
    楼主的“数据源配置器”这个面板本意应该是要用一个JScrollPane来包住一个比较大的面板但是从这个界面的现象上,我只能推测出:
    可能是有一个被设置了null布局的面板上面添加了一个被设置了固定大小的面板
    “数据源配置器”就是这个被设置了固定大小的面板,它被加到了一个设定了null布局的面板上
    楼主看一下你的设置了标题边框“数据源配置器”的那个面板是add到了什么地方
      

  5.   

    cp.add(sp);  
    cp.setPreferredSize(new Dimension(200, 200));  问题在这。没必要又把ScrollPane添加到Panel中吧?
      

  6.   


    JSplitPane.setRight...(new JScrollPane(panel))