Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでログインフォームを作成する方法!Swingを使った実装例とサンプルコード


JavaではSwingというGUIツールキットを利用することで、デスクトップアプリケーション向けのログインフォームを簡単に開発できます。この記事では、ユーザー名(User Name)パスワード(Password)の2つのラベル、認証情報を入力するための2つのテキストフィールド、そしてSUBMIT(送信)ボタンを1つ備えたフォームを作成します。正しい認証情報が入力されると、フォーム上に「Hello admin」というメッセージが表示されます。

使用する主なコンポーネント

  • JLabel:ラベルの表示に使用します。
  • JTextField:ユーザー名の入力欄です。
  • JPasswordField:パスワードの入力欄です(入力文字は●でマスクされます)。
  • JButton:送信ボタンです。
  • ActionListener:ボタンクリック時のイベントを処理するためのインターフェースです。

サンプルコード

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class LoginDemo extends JFrame implements ActionListener {
    JPanel panel;
    JLabel user_label, password_label, message;
    JTextField userName_text;
    JPasswordField password_text;
    JButton submit;

    LoginDemo() {
        // ユーザー名ラベル
        user_label = new JLabel();
        user_label.setText("User Name :");
        userName_text = new JTextField();
        // パスワードラベル
        password_label = new JLabel();
        password_label.setText("Password :");
        password_text = new JPasswordField();
        // 送信ボタン
        submit = new JButton("SUBMIT");
        panel = new JPanel(new GridLayout(3, 1));
        panel.add(user_label);
        panel.add(userName_text);
        panel.add(password_label);
        panel.add(password_text);
        message = new JLabel();
        panel.add(message);
        panel.add(submit);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // コンポーネントにリスナーを登録
        submit.addActionListener(this);
        add(panel, BorderLayout.CENTER);
        setTitle("Please Login Here !");
        setSize(450, 350);
        setVisible(true);
    }

    public static void main(String[] args) {
        new LoginDemo();
    }

    @Override
    public void actionPerformed(ActionEvent ae) {
        String userName = userName_text.getText();
        String password = String.valueOf(password_text.getPassword());
        if (userName.trim().equals("admin") && password.trim().equals("admin")) {
            message.setText("Hello " + userName);
        } else {
            message.setText("Invalid user..");
        }
    }
}

コードの解説

  • LoginDemoクラスはJFrameを継承し、ActionListenerインターフェースを実装しています。これにより、ボタンのクリックイベントをactionPerformedメソッドで受け取れるようになります。
  • GridLayout(3, 1)を使用することで、ラベル・入力欄・ボタンが整然と配置されたレイアウトを実現しています。
  • パスワードの取得にはgetPassword()メソッドを使用し、戻り値のchar配列をString.valueOf()で文字列に変換しています。非推奨となっているgetText()よりも安全な方法です。
  • trim()メソッドで入力値の前後の空白を除去した上で、equals()により「admin」と比較しています。
  • 認証に成功すると「Hello admin」、失敗すると「Invalid user..」というメッセージがラベルに表示されます。

実行結果

アプリケーションを起動すると、タイトル「Please Login Here !」のウィンドウが表示されます。ユーザー名とパスワードの両方に「admin」と入力してSUBMITボタンをクリックすると「Hello admin」と表示され、それ以外の認証情報を入力した場合は「Invalid user..」と表示されます。

Javaでログインフォームを作成する方法!Swingを使った実装例とサンプルコード

  1. 【Java入門】JScrollPaneでスクロール可能なJPanelを実装する方法

    JPanelとはJPanelはSwingで最もよく使われるコンテナの一つです。まずは基本的な特徴を確認しておきましょう。JPanelはJComponentのサブクラスであり、JComponentはContainerクラスのサブクラスです。したがって、JPanel自体もContainer(コンテナ)として扱えます。JPanelは、他のコンポーネントやパネルを配置するための「空の領域」として利用できます。テキストフィールド、ラベル、ボタン、チェックボックス、画像など、さまざまなコンポーネントを自由に追加できます。FlowLayout、GridLayout、BorderLayoutなどのレイアウトマ

  2. JavaのJToggleButton実装ガイド:ON/OFF切替ボタンの作り方を解説

    JToggleButtonとは JToggleButtonはAbstractButtonを拡張したクラスで、クリックするたびにONとOFFが切り替わるトグルボタンを実現するために使用されます。通常のボタンと異なり、押した状態を保持できるのが特徴です。 JToggleButtonの主な特徴 最初に押されたときは押し込まれた状態のままとなり、もう一度押してはじめて元の状態(押されていない状態)に戻ります。 ボタンが押されるたびにActionEventが発生します。 さらに、JToggleButtonはItemEventも発生させることができます。このイベントは、選択状態という概念を持つコンポー