Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

panelの大きさの設定について

お世話になります。

パネルをFrame内にセットしようとしているのですが、Frame全体に広がってしまいます。
パネルの大きさと位置を指定し、Frameの箇所に設定することはできないでしょうか?ご教授願います。

public class MyFrame extends JFrame{

    private JPanel MyPanel = new JPanel();

    public MyFrame(){

        MyPanel.setBackground(Color.BLUE);
        MyPanel.setSize(10,50);
        this.getContentPane().add(MyPanel);

    }

}

4

回答

4922

閲覧

4件の回答

評価

0

適切なレイアウトマネージャを使うか、またはレイアウトをnullにして、コンポーネントのsetBounds()を呼んでからadd()してください。なお、setSize()はほとんどの場合有効でないので、setPreferredSize()のほうを使ってください。

Java GUIプログラミングの基本を、勉強して下さい。

評価

0

コンテナの配置を制御する時は、LayoutManagerなどを使うと良いですよ。

関連のありそうなクラスをあげておきますので、目的にあったものを探してみてください。
java.awt.LayoutManager
java.awt.LayoutManager2
java.awt.BorderLayout
java.awt.CardLayout
java.awt.FlowLayout
java.awt.GridBagLayout
java.awt.GridLayout
javax.swing.BoxLayout
javax.swing.GroupLayout
javax.swing.OverlayLayout
javax.swing.ScrollPaneLayout
javax.swing.SpringLayout
javax.swing.ViewportLayout

評価

0

サイズや位置を任意に指定したい場合は、
レイアウトマネージャーには、nullを設定します。

でも、長い目で見ると、
レイアウトマネージャーの使用を利用できる
デザインにする方がいいよ。

評価

0

レイアウトマネージャーをnullに設定したら、できました。ありがとうございました。

レイアウトマネージャーも使用するよう検討します。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。