
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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ArrayList
-
ソースコード記載のHPを教えて...
-
4択クイズでのランダム出題の...
-
初心者です。フレームの閉じ方...
-
JPanelの切り替えと再描画
-
エラーで式の開始が不正ですと...
-
次のように書いたのですが、ウ...
-
JButton-背景の透明化
-
System.err. printlnとSystem.o...
-
オブジェクトの中のプロパティ...
-
変数を動的に利用するには?
-
IF関数でEmpty値を設定する方法。
-
ループ処理の際、最後だけ","を...
-
ORA-01858: 数値を指定する箇所...
-
flush()とclose()について
-
yyyymmddからyyyy/mm/d...
-
JSPやサーブレットでSystem.out...
-
C# ListBoxのインデックスの値...
-
C#から、C++で作成したdll内の...
-
C言語のポインターに関する警告
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
javaで文字数制限するには?
-
JPanelの重ね方/OverlayLayout他
-
ArrayListの使い方について(初...
-
TextAreaでの文字の色
-
JPanelの切り替えと再描画
-
JFrameとJPanelの最大化について
-
setPrefferedSizeとsetSize
-
【Swing】JPanel クラス外から...
-
フレームを閉じれない
-
Buttonを押すと画像が表示され...
-
JDialogを閉じた時の処理
-
BMI測定を作ろうとしている...
-
Javaについて
-
Java-Swing TextAreaにスクロー...
-
ボールが勝手に動き困ってます。
-
Enterキーでボタンを押すにはど...
-
4択クイズでのランダム出題の...
-
エラーで式の開始が不正ですと...
-
KeyListenerの使い方について
おすすめ情報