自宅でJava言語の開発環境を作る方法

Similar documents
awt の主要なクラスを下記に示す クラス Component Container Button Label Panel Frame 説明画面にユーザインターフェイス要素として表示し, ユーザとのやり取りを行うコンポーネントを表すすべてのコンポーネントのスーパークラスになる ほかのコンポーネントを含

ガイダンス

ガイダンス

ガイダンス

Java言語 第1回

2 static final int DO NOTHING ON CLOSE static final int HIDE ON CLOSE static final int DISPOSE ON CLOSE static final int EXIT ON CLOSE void setvisible

< F2D E E6A7464>

< F2D B825082CC96E291E82E6A7464>

Java言語 第1回

Java 2 - Lesson01

text_12.dvi

GUI プログラミング第 4 Graph ~ 手書認識と関数グラフ描画 ~ マウスで数式を書いて認識し 関数グラフを描画する < 手書認識とグラフ描画のステップ> ステップ 1_1 フレームの作成 ステップ 1_2 マウスで自由に線を書く ステップ 2-1 手書認識認識結果を標準出力する ステップ

PowerPoint Presentation

ガイダンス

Microsoft PowerPoint - prog12.ppt

< F2D B838A835882CC8CF68EAE2E6A7464>

次の演習課題(1),(2)のプログラムを完成させよ

public class Kadai _02 { public static void main(string[] args) { MyFrame frame = new MyFrame("Kadai _02"); (2) フレームのクラス名は MyFrame とし 以下

< F2D834F838C A815B A CC>

ガイダンス

< F2D82B682E182F182AF82F12E6A7464>

Microsoft PowerPoint - swing2.ppt

Prog1_12th

目 次 Java GUI 3 1 概要 クラス構成 ソースコード例 課題...7 i

<4D F736F F F696E74202D AC C8899E D834F E >

public class MyFrame { private JPanel panel1; private JPanel panel2; private JPanel panel3; private JPanel panel4; private JLabel label1; private JTex

ÿþ˜u#u·0¹0Æ0à0

< F2D82518CC282CC D2E6A7464>

< F2D825282CC947B909482CC A815B83682E6A>

< F2D82518E9F8AD CC95BD8D7388DA93AE2E6A7464>

Microsoft PowerPoint - OOP.pptx

Java 2 - Lesson01

< F2D F B834E2E6A7464>

< F2D A838B838D96402E6A7464>

Microsoft PowerPoint - prog13.ppt

< F2D89BA8EE882C E6A7464>

< F2D92DE82E8914B82CC977088D32E6A7464>

GUIプログラムⅣ

Prog1_12th

Microsoft PowerPoint - prog13.ppt

< F2D82518E9F8AD CC834F CC8CFC82AB82C68D4C>

10/31 Java AWTの基本構造(Frameクラスの継承) 演習課題資料

< F2D8EA CE909482CC92EA82852E6A7464>

PowerPoint プレゼンテーション


Microsoft PowerPoint - OOP.pptx

< F2D A839382CC906A2E6A7464>

アジェンダ 1 グラフィカルなインタフェース GUI(Graphical User Interface) の基礎 2 Swing を利用する Swing の基礎知識 2

Microsoft Word - Java4.DOC

Prog2_11th

(3) 本文を書く 実際にページを開いたときに表示される本文を書いてみましょう から の間に書きます <html > <head > <title > 武のホームページ </title > </head > </html > (4) ページを保存する ここで一度ページを保存してみましょう テキストエ

text_13.dvi

C#の基本

アトミックコンポーネント ( 部 品 )<ボタン, 文 字 > 中 間 コンテナ ( 部 品 を 置 く 場 所 ) トップレベルコンテナ (GUI を 表 示 するための 場 所.コンテントペイン) Swingコンポーネントを 利 用 する 手 順 サンプル 10.1 (Helo.java)につい

第1章 ビジュアルプログラミング入門

Microsoft PowerPoint ppt

(Microsoft Word - java\221n\221\242\203\214\203|\201[\203g.doc)

B 10 : N ip2003f10.tex B : 9/12/ :02 p.1/71

PowerPoint プレゼンテーション

フレーム ページの作り方 那須シニアネット三宅節雄 今回は那須シニアネットのホームページと同様に 1バナーとホームページのタイトルなどを入れた top.html 2スライドショーなど構成するページの名前の一覧から各ページへリンクさせた menu.html 3 取り敢えず表紙を飾った main.htm

JavaプログラミングⅠ

第1章 ビジュアルプログラミング入門

GUIプログラムⅤ

PowerPoint Presentation

GUIプログラムⅡ

PowerPoint プレゼンテーション

Java言語 第1回

PowerPoint プレゼンテーション

Java言語 第1回

ボタンイベントアプリイベント処理を含むアプリとして, ボタンをもち, ボタンを押すと文字列を表示するアプリを作る. このアプリは,HelloWorld アプリを改造して作成するため, アプリ作成の途中からの手順を示す. 1. ボタンの設置 (1) レイアウトにボタンを追加するパレットの フォーム ウ

Microsoft PowerPoint ppt

地域ポータルサイト「こむねっと ひろしま」

Object MenuComponent MenuBar MenuItem Menu CheckboxMenuItem

HCI プログラミング 10 回目テキストフィールドとキーイベント 今日の講義で学ぶ内容 テキストフィールドの利用 キーイベントの処理 テキストフィールドの利用 1 テキストフィールドを配置してみましょう テキストフィールドを用いることにより 数値や文字列などのデータ入力が可能になります ソースファ

ウィンドウの構成ウィンドウはタイトルバーとウィンドウ枠からなります タイトルバーには最小化 / 最大化ボタンや閉じるボタンがあります また ウィンドウはクライアント領域をもちます クライアント領域にはボタンなど GUI 部品が配置されます GUI 部品配置 ( レイアウト ) ウィンドウ ( ステー

HCI プログラミング 5 回目ウィンドウに画像を表示してみよう 今日の講義で学ぶ内容 画像の表示 画像のエフェクト 画像のビューポート指定 画像の表示 1 画像を表示してみましょう 画像の表示はクラス ImageView により管理されます ソースファイル名 :Sample5_1.java //

Assignment_.java /////////////////////////////////////////////////////////////////////// // 課題 星の画像がマウスカーソルを追従するコードを作成しなさい 次 ///////////////////

ラベルを管理するクラス Label ラベルはクラス Label により管理され 各種設定を行うメソッドが準備されています ラベルの生成 new Label("1. 通常のラベルです "); ラベルのサイズ setprefsize(200,100); ラベル文字が 1. 通常のラベルです で横 200

Microsoft PowerPoint - prog03.ppt

Web 設計入門

IE6 2 BMI chapter1 Java 6 chapter2 Java 7 chapter3 for if 8 chapter4 : BMI 9 chapter5 Java GUI 10 chapter6 11 chapter7 BMI 12 chap

Microsoft PowerPoint - chap10_OOP.ppt

Microsoft PowerPoint - swing3.ppt

......() JButton

HCI プログラミング 8 回目ボタン チェックボックス ラジオボタン 今日の講義で学ぶ内容 ボタンとアクションイベント ボタンのカスタマイズ チェックボックスとラジオボタン ボタンとアクションイベント 1 ボタンを配置してみましょう ボタンは ラベルと同じようにフォントやその色 画像の貼り付けなど

第1章 ビジュアルプログラミング入門

6 p.1 6 Java GUI GUI paintcomponent GUI mouseclicked, keypressed, actionperformed mouseclicked paintcomponent thread, 1 GUI 6.0.2, mutlithread C


子ボックスや孫ボックスなどに position: absolute; と指定すると それぞれ親ボックスに対する絶対位置で配置できるので親ボックスの上に複数の子ボックスや孫ボックスを重ねて配置することができます トランジションやアニメーションを作成するときに非常に便利なので覚えておきましょう top

PowerPoint プレゼンテーション

新規コンポーネントの作成方法

Prog1_2nd

ソフトウェア基礎演習 課題

Prog1_10th

Microsoft PowerPoint - prog09.ppt

Java演習(4) -- 変数と型 --

(Microsoft PowerPoint - \223\306\217KJAVA\221\346\202R\224\ ppt)

ガイダンス

最初に


Transcription:

ViralBanner の作成方法 2010 年 1 月 31 日更新 あいあいスクール代表 畠茂雄 ( はたけしげお )

もくじ 今回作成するツールの紹介... 3 ソースコードの作成... 5 (1)ViralBanner.html のソースコード... 6 (2)ViralBanner.java のソースコード... 7 (3) 参考 : レイアウトマネージャについて... 10-2

今回作成するツールの紹介 ViraBanner このツールは nozan さんが紹介している ヴァイラルダウンローダー っぽく作ったツールです ヴァイラルダウンローダー の実行画面を 今回 Java アプレット で作ってみました ヴァイラルとは クチコミ という意味で ツールを口コミで 広めていこうとするものです 詳しく知りたい方は こちらを参照して下さい ( 直リンク ) <nozan さんの無料レポート> 勝手に延々と あなたのブログへのアクセスや メルマガ読者を増やしてしまう秘伝のバイラルマーケティングツール!! http://www.iischool.net/download/magic.pdf < バナー広告のように設置した例 > - 3

< 主な機能 > 認証コード 欄には ダウンロードできる人だけが知っているコードを入力します 入力された認証コードが正しければ [ ダウンロード ] ボタンをクリックすると 指定したダウンロード先へジャンプ します 正しくなければ 注意メッセージを表示します 認証コードがわからない場合 [ 認証コード取得 ] ボタンをクリックすると 取得方法を案内するページにジャン プします サンプルでは [ 認証コード取得 ] ボタンをクリックすると 表示された画面で すぐ認証コードを見れるようにし てありますが ここは メールアドレスを入力してもらうフォーム等を設置して リストの取得や メルマガへの 登録をうながす用途に使えます - 4

ソースコードの作成 今回必要なプログラムのソースファイルは ViralBanner.java (1) 1 つだけですが ブラウザ表示を確認するために HTML ファイル ViralBanner.html (2) を利用します (2) のファイルをブラウザで開くと プログラムを呼んで 表示するようになっています なお (1) のファイルをコンパイルすると ViralBanner.class ViralBanner$ViralListener.class という 2 つのクラスファイルが出来上がります 実際に利用する場合には この 2 つのクラスファイルを配置します 今回 画像も使っているので jpg または gif 形式の画像ファイルが別途必要になります コンパイルの方法等につきましては こちらをご参照下さい 自宅で Java 言語の開発環境を作る方法 ( 最新の情報に更新しています ) http://www.iischool.net/40/41/ - 5

(1)ViralBanner.html のソースコード 以下のコードをコピーして ViralBanner.html というファイル名で保管します バナー広告によくあるサイズの幅 468 ピクセル 高さ 60 ピクセルの大きさで表示されるようにしています 実際に ブログツールとして設置するには <APPLET> タグの部分だけをブログツール設置場所に書き込め ばいいのですが 置き場所を codebase= に指定する必要があります クラスファイルを http:// ~ と指定できる場所に置く必要があります ダウンロードファイルを置く方法と同 様に置いて下さい ブログツールに書き込むコードの例 (http:// ~ の部分は自分のものに変更して下さい ) <APPLET codebase="http://www.iischool.net/java/" code="viralbanner.class" width=468 height=60></applet> ここから ViralBanner.html のソースコード <HTML> <HEAD> <TITLE>ViralBanner</TITLE> </HEAD> <BODY> <APPLET code="viralbanner.class" width=468 height=60></applet> </BODY> </HTML> - 6

(2)ViralBanner.java のソースコード 以下のコードをコピーして ViralBanner.java というファイル名で保管します その後 正常にコンパイルすると以下の 2 つのクラスファイルが出来上がります ViralBanner.class ViralBanner$ViralListener.class (1) で作成した ViralBanner.html を同じ場所に置いて ViralBanner.html をブラウザでいて正常に表示される か確認してみましょう // ViralBanner のソースコード // 変更箇所 (1) から変更箇所 (8) の 8 箇所を変更すれば OK です // 利用するクラスが入ったパッケージをインポートします import java.applet.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.net.*; public class ViralBanner extends JApplet { // ここで URL や認証コードをセットする変数を用意します URL u_download, u_ninsyo, u_viral; JTextField textfield; public void init() { // JApplet クラスのデフォルトのレイアウトマネージャは // ボーダーレイアウト Container fc = getcontentpane(); // パネル 1 2 3 を作る JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); // パネル 1 は グリッドレイアウト (2 行 1 列 ) GridLayout gl = new GridLayout(2, 1); p1.setlayout(gl); // パネル 2 3 は フローレイアウト ( 左寄せ ) FlowLayout fl = new FlowLayout(FlowLayout.LEFT); p2.setlayout(fl); p3.setlayout(fl); // ここで URL の間違いがないか判断します try { // ツールやレポートをダウンロードする URL をセットします u_download = new URL("http://www.iischool.net/pdf/ViralTool.pdf"); // 変更箇所 (1) // 認証コードを取得する URL をセットします u_ninsyo = new URL("http://www.haatdesign.com/applet20/applet20.html"); // 変更箇所 (2) // ボタン画像をクリックするとジャンプする先の URL をセットします u_viral = new URL("http://heihou.biz/ViralDownloader/index.php?e=webmaster@iichiyoda.com"); // 変更箇所 (3) catch (MalformedURLException mue) { System.err.println("URLが見つかりませんでした "); // Image クラス型変数に画像データを入れる (60 60 ピクセル程度の jpg または gif 画像 ) Image image = getimage(getcodebase(),"./viraldown.jpg");// 変更箇所 (4) // Image を ImageIcon クラスに変換する ImageIcon icon = new ImageIcon(image); // アイコンのボタンを作る JButton img = new JButton(icon); - 7

// アプレットの背景色を指定する //fc.setbackground(color.yellow); // パネルの背景色を指定する (Red,Green,Blue) を 0~255 の値で自由に指定します Color col = new Color( 255, 228, 225 ); // 変更箇所 (5) // 指定した色にセットします ( 初期色として黄色をセット ) col = Color.yellow; // 変更箇所 (6)(5) で変更した場合 この行は不要です // アプレットの背景色を指定します p1.setbackground(col); p2.setbackground(col); p3.setbackground(col); img.setbackground(col); // ツールやレポートの案内文をここに入れます // 全角 26 文字で埋めること 12345678901234567890123456 JLabel label1 = new JLabel(" このヴァイラルツールっぽいブログツールの作り方を無料プレゼント!"); // 変更箇所 (7) // ボタンなどを用意する JLabel label2 = new JLabel(" 認証コート "); textfield = new JTextField("", 9); JButton b_download = new JButton(" タ ウンロート "); JButton b_ninsyo = new JButton(" 認証コート 取得 "); ViralListener al = new ViralListener(); b_download.addactionlistener(al); b_ninsyo.addactionlistener(al); img.addactionlistener(al); // ラベル 1 のフォントを設定します Font fo1 = new Font("SansSerif",Font.BOLD,13); label1.setforeground(color.blue); label1.setfont(fo1); // ラベル 2 のフォントを設定します Font fo2 = new Font("SansSerif",Font.BOLD,12); //p.setforeground(color.black); label2.setfont(fo2); // パネル 2 にラベル 1 とボタンを載せます p2.add(label1); // パネル 3 にラベル 2 とボタンを載せます p3.add(label2); p3.add(textfield); p3.add(b_download); p3.add(b_ninsyo); // ボーダーレイアウトのコンテンツ区画 ( 西 ) にボタン画像を載せる fc.add(img, BorderLayout.WEST); // パネル 1 の上下にパネル 2 とパネル 3 を配置する p1.add(p2); p1.add(p3); // ボーダーレイアウトのコンテンツ区画 ( 中央 ) にパネル 1 を載せる fc.add(p1, BorderLayout.CENTER); // ボタンが押された時の処理 class ViralListener implements ActionListener { public void actionperformed(actionevent ae) { String bname = ae.getactioncommand(); if (bname.equals(" タ ウンロート ")) { // ここに認証コードをセットします if(textfield.gettext().equals("happyhappy")){ // 変更箇所 (8) // ツールやレポートをダウンロードする URL へジャンプする getappletcontext().showdocument(u_download); else { String title = " 警告 "; String msg = " 認証コードが違っています "; JOptionPane.showMessageDialog(null, msg, title, JOptionPane.WARNING_MESSAGE); else if (bname.equals(" 認証コート 取得 ")) { - 8

// 認証コードを取得する URL へジャンプする getappletcontext().showdocument(u_ninsyo); else { // ボタン画像をクリックした時の URL へジャンプする getappletcontext().showdocument(u_viral); おめでとう! あなたはブログツール開発者になれました! < 補足 > 今回のツールは 3 つのレイアウトマネージャを以下のように組み合わせて使っています 内部を 2 行 1 列の グリッドに分割 グリッド内は フローレイアウト - 9

(3) 参考 : レイアウトマネージャについて 複数のボタンなどの GUI コンポーネントを配置する場合 レイアウトマネージャ が使われます < 利点 > 要素を配置する座標などを計算する必要がない ウィンドウのサイズ変更をすると自動的に配置を調節する OS 等の環境の違いによりGUIコンポーネントのサイズは異なるが これを適切に調節する < レイアウトマネージャの種類 > パッケージ名称 ( クラス名 ) 説明使用頻度 java.awt FlowLayout 左から右へ流れるように配置する GridLayout サイズが等しい矩形を格子状に配置する BorderLayout 上下右左中央の 5 つの場所に配置する ( デフォルト ) CardLayout 各コンホ ーネントをカードとして扱う 1 度に 1 枚だけ表示する GridBagLayout 異なる大きさのコンホ ーネントでも縦横に配置できる javax.swing BoxLayout 水平あるいは垂直に 1 列に配置する OverlayLayout コンホ ーネントを互いの上に重なり合うように配置する ScrollPaneLayout スクロール可能なビューのレイアウトに使われる ViewportLayout ヒ ューホ ート ( 窓 ) へのレイアウトに使われる よく利用されるのは 赤字の 3 つです - 10

レイアウトマネージャを使ったサンプルプログラム フローレイアウト (Flow1.java) フローレイアウト は 可能な限り横 1 列に GUI コンポーネントを配置するレイアウト方法です G UI コンポーネントは 追加された順に左から右へと並びます 1 行に入りきらない場合は 次の行に折り返して表示します 余白があるときは中央揃えになります // フローレイアウトのサンプルプログラム import javax.swing.*; import java.awt.*; class Flow1 { public static void main(string args[]) { JFrame f = new JFrame("FlowLayout1"); f.setdefaultcloseoperation(f.exit_on_close); Container c = f.getcontentpane(); // レイアウトマネージャのインスタンスを作る FlowLayout fl = new FlowLayout(); // レイアウトを設定 c.setlayout(fl); 3 1 2 // ボタンを 6 つ作ってコンテンツ区画に追加する c.add(new JButton("1")); c.add(new JButton("2")); c.add(new JButton("3")); c.add(new JButton("4")); c.add(new JButton("5")); c.add(new JButton("6")); f.pack(); f.setvisible(true); 1 コンテンツペインは Container クラス型 ( コンテナ ) のオブジェクトです getcontentpane で得ることができます 2 フローレイアウトマネージャは FlowLayout クラスで作ります 3 レイアウトは レイアウトマネージャを作って setlayout メソッドの引数にすることで設定します - 11

フローレイアウト では ウィンドウの幅が広がったときに GUI コンポーネントを左詰め 中央 右詰めなどに整列するように設定できます コンストラクタ FlowLayout の引数には FlowLayout クラスが持つフィールド名を指定します ( 下表 ) 省略時は 中央揃え (CENTER) です フィールド名 整列方法 LEFT 各行の GUI コンホ ーネントを左揃えにする CENTER 各行の GUI コンホ ーネントを中央揃えにする RIGHT 各行の GUI コンホ ーネントを右揃えにする LEADING 各行の GUI コンホ ーネントをコンテナの方向のリーディングエッジ ( 例えば 左 から右方向の場合の左端 ) に揃える TRAILING 各行の GUI コンホ ーネントをコンテナの方向のトレイリングエッジ ( 例えば 左から右方向の場合の右端 ) に揃える サンプルのコンテナの方向は 左から右方向なので LEFT と LEADING は同じ挙動になります 2 の FlowLayout fl = new FlowLayout(); は 以下のように記述することができます FlowLayout fl = new FlowLayout(FlowLayout.RIGHT, 10, 15); ここで クラス名. フィールド名 として使用できるフィールドを クラス変数 と呼び インスタンス変数 と異なり インスタンスを生成しなくても使用できるフィールドです 第 2 引数と第 3 引数には GUI コンポーネント同士の水平間隔 垂直間隔が指定できます ( 単位ピクセル ) また 20 行目から 22 行目の記述は 第 2 引数で挿入位置 ( 先頭 0) を指定することができます c.add(new JButton("4"),0); c.add(new JButton("5"),2); c.add(new JButton("6"),4); - 12

グリッドレイアウト (Grid1.java) グリッドレイアウト (grid: 格子 ) は GUI コンポーネントを縦横の格子状に配置するレイアウト方法です GUI コンポーネントは 追加された順に左上 右上 次行の左端 右端右へと並びます 枠の大きさは GUI コンポーネントの中の最大のものに合わせられます ウィンドウサイズを変えると それに合わせて枠の大きさも変化します // グリッドレイアウトのサンプルプログラム 1 import javax.swing.*; import java.awt.*; class Grid1 { public static void main(string args[]) { JFrame f = new JFrame("GridLayout1"); f.setdefaultcloseoperation(f.exit_on_close); Container c = f.getcontentpane(); // レイアウトマネージャのインスタンスを作る GridLayout gl = new GridLayout(2, 3); c.setlayout(gl); c.add(new JButton("1")); c.add(new JButton("2")); c.add(new JButton("3")); c.add(new JButton("4")); c.add(new JButton("5")); c.add(new JButton("6")); f.pack(); f.setvisible(true); 1 1 グリッドレイアウトマネージャは GridLayout クラスで作ります 引数は 行数 列数です この GridLayout gl = new GridLayout(2, 3); は 以下のように記述することができます GridLayout gl = new GridLayout(0, 4, 10, 20); 第 3 引数 第 4 引数は GUI コンポーネント同士の水平間隔 垂直間隔が指定できます ( 単位ピクセルでデフォルトは 0) 行数または列数のどちらかを 0 に指定すると 0 でない方の値だけが有効になります この場合 行数が 0 なので 行数にかかわらず 4 列で配置する指定になります - 13

ボーダーレイアウト (Border1.java) ボーダーレイアウト (border: 境界 ) は GUI コンポーネントを東 西 南 北 中央の 5 箇所に配置するレイアウト方法です JFrame クラスのコンテンツ区画は デフォルトで ボーダーレイアウト になっています // ボーダーレイアウトのサンプルプログラム 1 import javax.swing.*; import java.awt.*; class Border1 { public static void main(string args[]) { JFrame f = new JFrame("BorderLayout1"); f.setdefaultcloseoperation(f.exit_on_close); Container c = f.getcontentpane(); // ボーダーレイアウトマネージャのインスタンスを作る BorderLayout bl = new BorderLayout(); 1 c.setlayout(bl); // 第 2 引数で配置場所を指定 c.add(new JButton("NORTH"), BorderLayout.NORTH); c.add(new JButton("EAST"), BorderLayout.EAST); c.add(new JButton("CENTER"),BorderLayout.CENTER); c.add(new JButton("WEST"), BorderLayout.WEST); c.add(new JButton("SOUTH"), BorderLayout.SOUTH); 2 f.pack(); f.setvisible(true); 1 ボーダーレイアウトマネージャは BorderLayout クラスで作ります 第 1 引数と第 2 引数には GUI コンポーネント同士の水平間隔 垂直間隔が指定できます ( 単位ピクセルでデフォルトは 0) 2 配置場所は add メソッドの第 2 引数で指定します BorderLayout クラスの クラス変数 を使います デフォルトでは CENTER になっているので 指定しないとすべて重なり 最後の GUI コンポーネントだけしか見えなくなります NORTH と SOUTH の領域は 横一杯に広がります WEST と EAST は 文字列の長さで横幅が決まります CENTER の領域は 残った大きさ一杯に広がります - 14

レイアウトマネージャを組み合わせて使う (PanelSample.java) 複数のレイアウトマネージャを組み合わせて使うためには パネル が必要です パネルは 複数の GUI コンポーネントを 1 つにまとめて扱うための GUI コンポーネントです フレームのコンテンツ区画や パネルのように GUI コンポーネントを入れる ( 載せる ) ことのできるオブジェクトは コンテナ と呼ばれます // 複数のレイアウトマネージャを組み合わせて使うサンプルプログラム import javax.swing.*; import java.awt.*; class PanelSample { public static void main(string args[]) { JFrame f = new JFrame("PanelSample"); f.setdefaultcloseoperation(f.exit_on_close); Container fc = f.getcontentpane(); // パネルを作る JPanel p = new JPanel(); // パネルはグリッドレイアウト (3 3) GridLayout gl = new GridLayout(3, 3); p.setlayout(gl); 1 2 // パネルにラベルとボタンを載せる p.add(new JLabel("")); // ダミー p.add(new JButton(" ")); p.add(new JLabel("")); // ダミー p.add(new JButton(" ")); p.add(new JLabel("")); // ダミー p.add(new JButton(" ")); p.add(new JLabel("")); // ダミー p.add(new JButton(" ")); p.add(new JLabel("")); // ダミー // フレームのコンテンツ区画 ( 北 ) にボタンを載せる fc.add(new JButton("CANCEL"), BorderLayout.NORTH); 3 // フレームのコンテンツ区画 ( 中央 ) にパネルを載せる fc.add(p, BorderLayout.CENTER); // フレームのコンテンツ区画 ( 南 ) にボタンを載せる fc.add(new JButton("O K"), BorderLayout.SOUTH); f.pack(); f.setvisible(true); 1 パネルは JPanel クラスで作ります 2 パネル内をグリッドレイアウト (3 3) にします 3 フレームのコンテンツ区画は デフォルトのボーダーレイアウトになります - 15