
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
コンテナ(JFrameやJPanel)にsetLayout()メソッドでFlowLayoutを指定すると
追加されたコンポーネントは自動的に適切なサイズで配置されます。
また、BorderLayoutを指定するとNORTHとSOUTHは高さが適切なサイズに、
WESTとEASTでは幅が適切なサイズになって配置されます。
この時のサイズを指定するのがsetPreferredSize()メソッドです。
setSize()メソッドの値は無視されます。
一方、setLayout()でnullを指定するとサイズを指定する必要があります。
この時サイズを指定するのがsetSize()メソッドになります。
setPreferredSize()メソッドの値は無視されます。
プログラムだとこんな感じですかね。
(投稿するとインデントが削除されて見にくくなるようですみません)
import java.awt.*;
import javax.swing.*;
class test2 extends JFrame{
JButton btn1,btn2,btn3;
JButton btn4,btn5,btn6;
test2(){
super("SizeTest");
setSize(700,700);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
JPanel p0=new JPanel();
p0.setLayout(new GridLayout(2,1));
JPanel p1=new JPanel();
//FlowLayout
p1.setLayout(new FlowLayout());
//サイズ指定なし(デフォルトの適切なサイズ)
btn1=new JButton("Button1");
p1.add(btn1);
//setSize()で指定(無視されている)
btn2=new JButton("Button2");
btn2.setSize(new Dimension(150,100));
p1.add(btn2);
//setPreferredSize()で指定
btn3=new JButton("Button3");
btn3.setPreferredSize(new Dimension(150,100));
p1.add(btn3);
p0.add(p1);
JPanel p2=new JPanel();
//レイアウトマネージャ無し
p2.setLayout(null);
//サイズ指定なし(表示されない)
btn4=new JButton("Button4");
btn4.setLocation(10,10);
p2.add(btn4);
//setSize()で指定
btn5=new JButton("Button5");
btn5.setLocation(210,10);
btn5.setSize(new Dimension(150,100));
p2.add(btn5);
//setPreferredSize()でもサイズ指定(無視されている)
btn6=new JButton("Button6");
btn6.setLocation(420,10);
btn6.setSize(new Dimension(50,50));
btn6.setPreferredSize(new Dimension(150,100));
p2.add(btn6);
p0.add(p2);
add(p0,BorderLayout.CENTER);
}
public static void main(String args[]){
test2 frame=new test2();
frame.setVisible(true);
}
}
No.1
- 回答日時:
ケースバイケースで答えが複雑ですが、以下のURLを参照ください。
setSizeは外枠のサイズを決定するものです。(トップダウン的)
setPreferredSizeは、内側、すなわちFrameなどに配置したコンポーネントの推奨サイズを決定します。コンポーネントの最小値、最大値を決定する方法も別にあります。(ボトムアップ的)
http://expcodes.com/216079
http://docs.oracle.com/javase/jp/6/api/javax/swi …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
TextAreaでの文字の色
-
java junit list同士の比較方法
-
JButton-背景の透明化
-
JavaScriptの変数をjavaのメソ...
-
InputStream.read()でタイムア...
-
javaで質問です。 文字列2023/2...
-
JScrollPaneで、表示がおかしく...
-
JavaScriptを使ってロト6の当...
-
JavaScriptとVBScriptに関して
-
JSPでHashMap・配列の変数の値...
-
eclipseに記述したjavaファイル...
-
javaのコンパイルエラーについ...
-
ループ処理の際、最後だけ","を...
-
オブジェクトの中のプロパティ...
-
strutsでlist型の入力を行うには
-
StrutsでJSPからListを受け取り...
-
requestの値が削除されません…
-
VBAで配列の計算
-
System.err. printlnとSystem.o...
-
Javaを使って、string型の年月...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Buttonを押すと画像が表示され...
-
setPrefferedSizeとsetSize
-
javaで文字数制限するには?
-
JPanelの切り替えと再描画
-
java junit list同士の比較方法
-
SwingのJMenuに大量のJMenuItem...
-
JDialogを閉じた時の処理
-
JFrameとJPanelの最大化について
-
KeyListenerの使い方について
-
最後の行に移動するには?
-
JTable の 列幅を個別に設定す...
-
TextAreaでの文字の色
-
cadで作った図面をフレーム上で...
-
JTableの列ヘッダ
-
4択クイズでのランダム出題の...
-
JPanelの重ね方/OverlayLayout他
-
Enterキーでボタンを押すにはど...
-
Swing自作コンポーネントをadd...
-
Java-Swing TextAreaにスクロー...
-
キーボードから入力された全角...
おすすめ情報