このエントリーをはてなブックマークに追加

swingを利用したアプリケーションの開発メモ

step1 プロジェクトの作成

Swing用のプロジェクトを作成します。今回はMavenを利用して作成しjavaのバージョンとしては「java11」を利用しています。

作成したpom.xmlは以下のようになります。Swing自体はJavaの標準のため特に別途依存関係を追加する必要はありません。

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>jp.dip.snowsaber</groupId>
    <artifactId>dirSearch</artifactId>
    <version>0.0.1-SNAPSHOT</version>

    <!-- 定数定義 -->
    <properties>
        <java.version>11</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <!-- 依存関係を記載する -->

    </dependencies>
    <!-- ビルド定義 -->
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

step2 空の画面表示

部品を何も配置しない状態で画面を表示するための構成要素

  • freamクラス

    画面を表示するためのFreamを記載するためのクラスとなります。

    /**
    * Main クラス
    * @author snowhiro
    *
    */
    public class MainFrame extends JFrame {
    
        public MainFrame() {
            MainFrame thisFrame = this;
            try {
    
                // タイトルを設定
                setTitle("サンプル");
    
                // 画面のサイズを指定
                setPreferredSize(new Dimension(1000, 400));
    
                // 画面を最適化
                pack();
    
                // ×ボタンを押下時にプロセスを終了
                setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            } catch (Exception e) {
                JOptionPane.showMessageDialog(thisFrame, e.getMessage());
            }
        }
    }    
    
  • mainクラス

    javaの起動クラスを記載し、Frameを呼び出します。 呼び出し時に「SwingUtilities.invokeLater」を利用します。

    package jp.dip.snowsaber;
    
    import javax.swing.*;
    
    public class SwingExampleMain {
    
        public static void main(String[] args) {
    
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    new MainFrame().setVisible(true);
                }
            });
    
        }
    }
    
  • 実行結果

    ../../_images/01.action_result.png