GUIアプリ①HelloWorld
今回から、GUIアプリの連載を始めます。
前回まで、Webアプリのフレームワークでちょっと難しかったので
GUIアプリは、初歩からやるので分かりやすいと思います。
■Javaソース資源
# | ファイル名 | 概要 | 修正/新規 |
1 | GuiHelloWorld.java | フレームクラス | 新規 |
①Javaプロジェクトの作成

②Javaソースの作成
②-1 クラスの作成
クラスの作成で、継承元にJFrameを選択します。

ActionListenerのインターフェイスも継承します。

クラスを作成します。

まだ、エラーがあります。実装されていないメソッドの追加を選択します。

メソッドが追加されて、エラーはなくなります。

②-2 コンストラクタの作成
②-3 メインの作成
②-4 アクションパフォームドの作成
行数 | 説明 |
13 | クラス名:GuiHelloWorld 継承元:JFrame インターフェイス元:ActionListener |
15 | JButtonクラスのインスタンスを生成しています。メンバ変数として定義しています。 |
17 | GuiHelloWorldクラスのコンストラクタメソッドになります。 |
19 | jButtonクラスのActionListener(アクションリスナー)の登録を行っています。 ボタン押下時にアクションリスナーのイベントが呼ばれます。 |
20 | JFrame(親ウインドウ)にjButtonクラス(ボタン)を設定します。 |
21 | JFrame(親ウインドウ)が右上にある「×」ボタンで閉じるように設定します。 |
22 | JFrame(親ウインドウ)のサイズ幅300ピクセル、高さ200ピクセルに設定しています。 |
23 | JFrame(親ウインドウ)を表示しています。 |

行 | 説明 |
39~42 | メインメソッドになります。コンストラクタをインスタンスして呼び出しているだけです。 |
44 | ActionListenerインターフェイスのメソッドをオーバーライドしています。 重要なメソッドです。ボタンが押されたときにイベントとして呼び出されるメソッドです。 |
45 | メソッド名:actionPerformed(ActionEvent e):アクションパフォームド |
47 | アクションイベントがボタンのイベントであるか比較しています。 |
48-49 | メッセージダイアログを表示しています。 ①引数:親コンポーネント:null (nullの場合、画面中央にメッセージダイアログが表示します。) (thisの場合、親画面の上にメッセージダイアログが表示します。) ②引数:メッセージ:HelloWorld ③引数:タイトル:informaition ④引数:メッセージタイプ:INFORMATION_MESSAGE |

これで、準備が整いました。実行してみましょう。

ボタン押下します。メッセージダイアログが表示すれば成功です。お疲れ様でした!

おまけとして、①引数をthisの場合も試してみましょう。

thisに変更すると、親画面の上にメッセージダイアログが表示します。

■ソースコードのコピーペースト用に記載します。
GuiHelloWorld.java
package app;
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class GuiHelloWorld extends JFrame implements ActionListener {
JButton jButton = new JButton("ボタン");
public GuiHelloWorld() throws HeadlessException {
// TODO 自動生成されたコンストラクター・スタブ
jButton.addActionListener(this);
getContentPane().add(BorderLayout.CENTER,jButton);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,200);
setVisible(true);
}
public GuiHelloWorld(GraphicsConfiguration gc) {
super(gc);
// TODO 自動生成されたコンストラクター・スタブ
}
public GuiHelloWorld(String title) throws HeadlessException {
super(title);
// TODO 自動生成されたコンストラクター・スタブ
}
public GuiHelloWorld(String title, GraphicsConfiguration gc) {
super(title, gc);
// TODO 自動生成されたコンストラクター・スタブ
}
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
new GuiHelloWorld();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自動生成されたメソッド・スタブ
if(e.getSource() == jButton) {
JOptionPane.showMessageDialog(this, "HelloWorld","information",
JOptionPane.INFORMATION_MESSAGE);
}
}
}
import java.awt.BorderLayout;
import java.awt.GraphicsConfiguration;
import java.awt.HeadlessException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class GuiHelloWorld extends JFrame implements ActionListener {
JButton jButton = new JButton("ボタン");
public GuiHelloWorld() throws HeadlessException {
// TODO 自動生成されたコンストラクター・スタブ
jButton.addActionListener(this);
getContentPane().add(BorderLayout.CENTER,jButton);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300,200);
setVisible(true);
}
public GuiHelloWorld(GraphicsConfiguration gc) {
super(gc);
// TODO 自動生成されたコンストラクター・スタブ
}
public GuiHelloWorld(String title) throws HeadlessException {
super(title);
// TODO 自動生成されたコンストラクター・スタブ
}
public GuiHelloWorld(String title, GraphicsConfiguration gc) {
super(title, gc);
// TODO 自動生成されたコンストラクター・スタブ
}
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
new GuiHelloWorld();
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自動生成されたメソッド・スタブ
if(e.getSource() == jButton) {
JOptionPane.showMessageDialog(this, "HelloWorld","information",
JOptionPane.INFORMATION_MESSAGE);
}
}
}