Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

近年ではWebアプリケーションが主流となっていますが、Javaではブラウザを使用せずGUIアプリケーションを作成することも可能です。

本記事では、JavaのSwingというパッケージを利用したウィンドウの表示方法と簡単な使用方法についてご紹介していきます。

JavaでSwingパッケージを利用する


Javaでは一般的にウィンドウの作成に「javax.swing.JFrame」クラスを使用します。

Swingとは

SwingはGUI用のJavaライブラリです。

今回利用するウィンドウフレームを作成するための「JFrameクラス」をはじめ、ボタン作成用の「JButtonクラス」など、様々なコンポーネントが利用出来ます。

Eclipseへインストール

EclipseからSwingを利用するには、マーケットプレイスからインストールしておく必要があります。


メニューバーの「ヘルプ」→「Eclipseマーケットプレイス」を選択します。

検索窓に「windowbuilder」と入力すると、画像のようにパッケージが表示されますので、「インストール済み」状態になっていない場合はインストールしておきましょう。

JavaのGUIアプリケーションを作成してウィンドウを表示


Swingのインストールまで完了出来たら、実際にGUIアプリケーションを作成してウィンドウを表示してみましょう。

新規プロジェクト作成

まずはGUIアプリケーション用の新規プロジェクトを立ち上げます。

画面左上の赤枠で囲った「新規プロジェクト作成」アイコンをクリックし、表示されている「Javaプロジェクト」を選択し「次へ」ボタンをクリックします。

次の画面でプロジェクト名を入力します。

何でも良いのですが今回は「sampleJFrame」と付けておきました。

プロジェクトが作成された直後の状態です。

JFrameクラスを作成する

まずはJFrameクラスを生成するためのパッケージを作成しておきます。

作成したプロジェクトの「src」フォルダを右クリックし画像の通り「新規」→「パッケージ」と選択します。


今回パッケージ名はプロジェクト名と同じにしておきます。


完了ボタンをクリックするとパッケージが作成されていますので、パッケージを選択した状態で再度右クリックから「新規」→「その他」と選択します。

「WindowBuilder」→「Swingデザイナー」→「JFrame」を選択し、「次へ」ボタンをクリックします。

クラス名を設定し「完了」ボタンをクリックします。

初期状態

クラスを作成すると下記のようなコードが自動的に生成されます。

  1. package sampleJFrame;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.EventQueue;
  5.  
  6. import javax.swing.JFrame;
  7. import javax.swing.JPanel;
  8. import javax.swing.border.EmptyBorder;
  9.  
  10. public class Sample extends JFrame {
  11.  
  12. private JPanel contentPane;
  13.  
  14. /**
  15. * Launch the application.
  16. */
  17. public static void main(String[] args) {
  18. EventQueue.invokeLater(new Runnable() {
  19. public void run() {
  20. try {
  21. Sample frame = new Sample();
  22. frame.setVisible(true);
  23. } catch (Exception e) {
  24. e.printStackTrace();
  25. }
  26. }
  27. });
  28. }
  29.  
  30. /**
  31. * Create the frame.
  32. */
  33. public Sample() {
  34. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  35. setBounds(100, 100, 450, 300);
  36. contentPane = new JPanel();
  37. contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  38. contentPane.setLayout(new BorderLayout(0, 0));
  39. setContentPane(contentPane);
  40. }
  41.  
  42. }

コードは何も変更せずに実行してみましょう。


作成したJFrameクラスを右クリックし「実行」→「Javaアプリケーション」を選択します。


この時点で画像のようにウィンドウが表示出来ていることをご確認頂けます。

ウィンドウを変更してJavaのソースコードを確認してみよう


ウィンドウの表示まで確認出来ましたので、簡単にデザインを変更してみましょう。

デザインタブ


Eclipseではソースコードを開いた状態で、デザインタブをクリックすることで直感的に各種パーツをウィンドウ上に配置することが出来ます。

例えば「Button」を画面上に配置してみます。

画面上のどこに設置するかを指定してすることが可能です。


デザインタブにボタンが反映されていることを確認出来ます。

ソースタブに戻ってみると下記のようにコードが変更されています。

  1. package sampleJFrame;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.EventQueue;
  5.  
  6. import javax.swing.JFrame;
  7. import javax.swing.JPanel;
  8. import javax.swing.border.EmptyBorder;
  9. import javax.swing.JButton;
  10.  
  11. public class Sample extends JFrame {
  12.  
  13. private JPanel contentPane;
  14.  
  15. /**
  16. * Launch the application.
  17. */
  18. public static void main(String[] args) {
  19. EventQueue.invokeLater(new Runnable() {
  20. public void run() {
  21. try {
  22. Sample frame = new Sample();
  23. frame.setVisible(true);
  24. } catch (Exception e) {
  25. e.printStackTrace();
  26. }
  27. }
  28. });
  29. }
  30.  
  31. /**
  32. * Create the frame.
  33. */
  34. public Sample() {
  35. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  36. setBounds(100, 100, 450, 300);
  37. contentPane = new JPanel();
  38. contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  39. contentPane.setLayout(new BorderLayout(0, 0));
  40. setContentPane(contentPane);
  41. JButton btnNewButton = new JButton("New button");
  42. contentPane.add(btnNewButton, BorderLayout.NORTH);
  43. }
  44.  
  45. }

42行目と43行目にボタン表示用のソースコードが追加されています。


実際にアプリを動かしてみると画像のようにボタンが表示されていることをご確認頂けます。

ソースタブ

デザインタブの画面操作である程度コードを自動生成出来ることが分かりましたが、もちろんソースコードを直接変更することも可能です。

サンプルコードを下記のように変更してみましょう。

  1. package sampleJFrame;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.EventQueue;
  5.  
  6. import javax.swing.JButton;
  7. import javax.swing.JFrame;
  8. import javax.swing.JPanel;
  9. import javax.swing.border.EmptyBorder;
  10.  
  11. public class Sample extends JFrame {
  12.  
  13. private JPanel contentPane;
  14.  
  15. /**
  16. * Launch the application.
  17. */
  18. public static void main(String[] args) {
  19. EventQueue.invokeLater(new Runnable() {
  20. public void run() {
  21. try {
  22. Sample frame = new Sample();
  23. frame.setVisible(true);
  24. } catch (Exception e) {
  25. e.printStackTrace();
  26. }
  27. }
  28. });
  29. }
  30.  
  31. /**
  32. * Create the frame.
  33. */
  34. public Sample() {
  35. setTitle("サンプルウィンドウのタイトル");
  36. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  37. setBounds(100, 100, 450, 300);
  38. contentPane = new JPanel();
  39. contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  40. contentPane.setLayout(new BorderLayout(0, 0));
  41. setContentPane(contentPane);
  42.  
  43. JButton btnNewButton = new JButton("ボタンを作成しました。");
  44. contentPane.add(btnNewButton, BorderLayout.SOUTH);
  45. }
  46.  
  47. }

実行してみると下記画像のように表示されます。

35行目の「setTitle」では、ウィンドウの上部にタイトルを設定しました。

更にデザインタブで追加したボタンの表示内容と表示位置を43行目と44行目で変更しています。

さいごに: ウィンドウを使ってJavaでGUIアプリケーションを作成してみよう


本記事では、JavaでSwingパッケージを利用したウィンドウの表示方法についてご紹介してきました。

今回ご紹介した内容はアプリのベースを作成する段階で、ここからデザインはもちろんボタンクリック時の処理などを実装していく必要があります。

まずはウィンドウの表示までを今回の記事内容を参考に実践し、自分の作成したいアプリに必要な機能をその都度調べながらGUIアプリケーションの作成に挑戦してみてください。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。