2011-01-31 14 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

Aha!おかげさまで、私はsetDividerLocationが動作することを期待していましたが、それができなかった場合、代わりに何をすべきか分かりませんでした。 –

2

わからないMigLayoutの話はできません。しかし、私の考えでは、その問題に対する最善の解決策はスイングジェネリックです:ComponentListenerをJSpiltPaneに追加し、サイズ比から構築された係数でコンポーネントのサイズを変更します。

+0

+1:他の目的でこれを行う必要があるので、ComponentListenerへのリンクありがとうございます。 –

関連する問題