2011-12-07 11 views
1

テキストを表示できるフラクショナルオブジェクトを作成するクラスを作成しています。私はそれらの間に3ピクセルのスペーサーを持つ黒い背景パネルと2つの白いパネルを上向きに向けています。各白いパネルにはJLabelが含まれています。Java:Swingで変更された埋め込みパネルの幅を制御する

これにより、分子、分母、および小数点が作成されます。分子と分母が同じ長さ(例えば1/2)であれば、すべてうまく動作します。しかし、分子と分母が異なるサイズ(例えば1/12)になると、パネルの1つが小さすぎて側面に沿って黒くなります。私は、小さなパネルをバックグラウンドパネルの幅いっぱいにするように強制しようとしていますが、これが正しく機能するようには見えません。ここに私のクラスです。

public class MakeFraction2 { 

    private JLabel jlabelNum; 
    private JLabel jlabelDen; 
    JPanel mainpanel = new JPanel(); 
    JPanel numpanel = new JPanel(); 
    JPanel denpanel = new JPanel(); 
    private Font font3 = new Font("Monospaced", Font.BOLD, 17); 
    private Font font4 = new Font ("SansSerif", Font.BOLD, 17); 

    MakeFraction2(){ 
     jlabelNum = new JLabel("Num"); 
     jlabelDen = new JLabel("Den"); 
     mainpanel.setLayout(new BoxLayout(mainpanel, BoxLayout.Y_AXIS)); 
     numpanel.setLayout(new BoxLayout(numpanel, BoxLayout.X_AXIS)); 
     denpanel.setLayout(new BoxLayout(denpanel, BoxLayout.X_AXIS)); 
     mainpanel.setBackground(Color.BLACK); 
     numpanel.setBackground(Color.WHITE); 
     denpanel.setBackground(Color.WHITE); 
     numpanel.add(jlabelNum); 
     denpanel.add(jlabelDen); 
     mainpanel.add(numpanel); 
     mainpanel.add(Box.createRigidArea(new Dimension(1,2))); 
     mainpanel.add(denpanel); 
    } 

    public void setnumden(String num, String den) { 
     mainpanel.setBackground(Color.BLACK); 
     jlabelNum.setText(num); 
     jlabelDen.setText(den); 
     sizepanels(); 
    } 

    void sizepanels(){ 
     int width = mainpanel.getWidth(); 
     int h1 = numpanel.getHeight(); 
     int h2 = denpanel.getHeight(); 
     int height = Math.max(h1, h2); 
     numpanel.setSize(width,height); 
     denpanel.setSize(width,height); 
    } 
} 
+0

ポストあなたの問題の小さなコンパイルの例では分数の例を参照してください。 – blackcompe

+0

この[Q&A](http://stackoverflow.com/questions/7448216/how-to-rendering-fraction-in-swing-jcomponents)も参照してください。 – trashgod

答えて

2

GridLayout(2行1列)を使用してラベルを配置することをお勧めします。私たちは、問題のより良いビジュアルを得ることができるように

はまた、JEditorPaneのhttp://java-sl.com/fraction_view.html

関連する問題