
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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# pythonのファイルの並びでの読み込みとリストについて 4 2022/04/13 03:52
- JavaScript json形式データのデータ連携について 4 2022/04/05 23:01
- 統計学 比率に関する質問ですが 例えば 1)初めの物質Aというものの濃度は知らないが 物質Aに溶媒を3回添加 5 2023/04/02 00:27
- Java javaでパソコンの内臓カメラや内臓マイクの映像や音をリアルタイムで映し出した 1 2022/07/09 14:02
- 小学校 本当にびっくりしました。 小学校の宿題は、授業中に解説や間違い直しをしないそうです。 週末の宿題がや 6 2022/07/15 19:46
- 電子書籍 Amazon欲しい物リストの作成方法 1 2022/12/19 07:44
- 数学 中1 数学 空間における平面と直線の問題です 2 2023/04/14 20:44
- その他(プログラミング・Web制作) このpythonコードの意味教えて下さい! 2 2022/08/26 00:52
- その他(ゲーム) ポケモン乱数 色違い 伝説 HGSS(ハートゴールド・ソウルシルバー) 1 2022/05/06 13:13
- C言語・C++・C# [至急] Project Euler:#16 Power digit sumコード、入力、出力、解説 3 2022/09/24 02:35
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【Swing】JPanel クラス外から...
-
Java-Swing TextAreaにスクロー...
-
JPanelの切り替えと再描画
-
Buttonを押すと画像が表示され...
-
ボタンクリック後パネルを再描...
-
VB6.0でのTextboxの高さ変更
-
(急募)このフレームにじゃんけ...
-
あるコンボボックスを選択する...
-
ノードの削除
-
JDialogを閉じた時の処理
-
JScrollPaneの細かい設定について
-
JPanelの重ね方/OverlayLayout他
-
TextAreaでの文字の色
-
Label を リスナーと結びつけ...
-
java junit list同士の比較方法
-
画面遷移について困ってます。
-
Javaで文字と数字が混ざったも...
-
動的配列が存在(要素が有る)か...
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
【Swing】JPanel クラス外から...
-
JPanelの切り替えと再描画
-
TextAreaでの文字の色
-
最後の行に移動するには?
-
setPrefferedSizeとsetSize
-
ListSelectionListenerのvalueC...
-
Java-Swing TextAreaにスクロー...
-
javaで文字数制限するには?
-
JDialogを閉じた時の処理
-
エラーで式の開始が不正ですと...
-
JFrameとJPanelの最大化について
-
JPanelの重ね方/OverlayLayout他
-
VB6.0でのTextboxの高さ変更
-
ボタンがマウスオーバーしない...
-
次のように書いたのですが、ウ...
-
Java本格じゃんけんで
-
あるコンボボックスを選択する...
-
簡易電卓が作れない…
-
Buttonを押すと画像が表示され...
おすすめ情報