2011-01-31 67 views
4

後續問題to my other one;JSplitPane + MiGLayout:如何啓用比例自動調整

如何啓用比例調整大小?我認爲這會工作,但它並不:

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JSplitPane; 
import net.miginfocom.swing.MigLayout; 

public class SplitPaneQuestion { 
    public static void main(String[] args) { 
     JFrame frame = new JFrame("SplitPaneQuestion"); 
     JPanel panel = new JPanel(); 
     frame.setContentPane(panel); 
     panel.setLayout(new MigLayout("","[]","[grow]")); 
     JSplitPane splitpane = new JSplitPane(JSplitPane.VERTICAL_SPLIT); 
     panel.add(splitpane, "push, grow"); 

     splitpane.setTopComponent(new JButton("top")); 
     splitpane.setBottomComponent(new JButton("bottom")); 
     splitpane.setDividerLocation(0.333); 

     frame.pack(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
    } 
} 

我想是上/下按鈕大小的比例是恆定的,當我調整整個框架。 (預設比例爲1:2)

我該怎麼做?

回答

6
splitPane.setResizeWeight(0.333); 
+0

啊哈!謝謝,我期待setDividerLocation的工作,當它不,我不知道該怎麼做。 – 2011-01-31 17:31:18

2

我不能說MigLayout,我不知道。但是,在我看來,這個問題的最佳解決方案是swing-generic:將一個ComponentListener添加到JSpiltPane中,並通過按比例構建的係數調整其包含的組件的大小。

+0

+1:我需要這樣做的其他目的,所以感謝鏈接到ComponentListener。 – 2011-01-31 17:33:02