10

重複の可能性:
スイング:コンポーネントの高さをコンテナの高さに設定するにはどうすればよいですか?

下の図のようにJPanelを分割するには、2つのパネルがあります。panel1とpanel2 panel1は70%、panel2は30%、またはpanel1はpanel2よりも大きい必要があります...いただければ幸いです。

public class TestApplication extends JApplet {

private static final long serialVersionUID = 1L;

    JPanel p1,p2;

    public void init(){         
        setLayout(new GridLayout(3,1));
        p1=new JPanel();
        p2=new JPanel();

        p1.setBackground(Color.RED);
        p2.setBackground(Color.GREEN);

        add(p1);
        add(p2);
    }   
}

ここに画像の説明を入力してください

4

2 に答える 2

13

JSplitPane分割ペインの使用方法)の使用を検討しましたか?

import java.awt.BorderLayout;
import java.awt.Color;

import javax.swing.JApplet;
import javax.swing.JPanel;
import javax.swing.JSplitPane;

public class TestApplication extends JApplet {

private static final long serialVersionUID = 1L;

    JPanel p1,p2;

    @Override
    public void init(){         
        setLayout(new BorderLayout());

        p1=new JPanel();
        p2=new JPanel();

        p1.setBackground(Color.RED);
        p2.setBackground(Color.GREEN);
        JSplitPane sp = new JSplitPane(JSplitPane.VERTICAL_SPLIT);
        sp.setResizeWeight(0.7);
        sp.setEnabled(false);
        sp.setDividerSize(0);

        sp.add(p1);
        sp.add(p2);
        add(sp, BorderLayout.CENTER);
    }   
}

ここに画像の説明を入力してください

于 2012-09-05T07:30:14.867 に答える
1

外部JFrame(または別のJPanel)fがある場合は、BorderLayoutを適用して、p1をNORTHに、p2をSOUTHに配置できます。次に、

Dimension df = f.getSize();

外部コンテナの寸法を取得します(f)。次に、次の呼び出し先に呼び出します。

void setSize(Dimension d)

こちらです:

p1.setSize(new Dimension(df.getWidth(), df.getHeight()*0.7));
p2.setSize(new Dimension(df.getWidth(), df.getHeight()*0.3));

最後に、これらのJPanelをコンテナに追加します。

于 2012-09-05T07:32:10.547 に答える