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入門】JScrollPaneでスクロール可能なJPanelを実装する方法
JPanelとはJPanelはSwingで最もよく使われるコンテナの一つです。まずは基本的な特徴を確認しておきましょう。JPanelはJComponentのサブクラスであり、JComponentはContainerクラスのサブクラスです。したがって、JPanel自体もContainer(コンテナ)として扱えます。JPanelは、他のコンポーネントやパネルを配置するための「空の領域」として利用できます。テキストフィールド、ラベル、ボタン、チェックボックス、画像など、さまざまなコンポーネントを自由に追加できます。FlowLayout、GridLayout、BorderLayoutなどのレイアウトマ
-
JavaのJToggleButton実装ガイド:ON/OFF切替ボタンの作り方を解説
JToggleButtonとは JToggleButtonはAbstractButtonを拡張したクラスで、クリックするたびにONとOFFが切り替わるトグルボタンを実現するために使用されます。通常のボタンと異なり、押した状態を保持できるのが特徴です。 JToggleButtonの主な特徴 最初に押されたときは押し込まれた状態のままとなり、もう一度押してはじめて元の状態(押されていない状態)に戻ります。 ボタンが押されるたびにActionEventが発生します。 さらに、JToggleButtonはItemEventも発生させることができます。このイベントは、選択状態という概念を持つコンポー