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

Java SwingでJButtonのテキストを動的に変更する方法

JButtonAbstractButtonのサブクラスであり、Java Swingアプリケーションにプラットフォームに依存しないボタンを追加するために使用されるコンポーネントです。ユーザーがボタンをクリックするとActionListenerインターフェースが発生し、さらにMouseListenerKeyListenerといったインターフェースにも対応しています。

デフォルトではテキスト付きのJButtonを作成できます。テキストフィールドに任意の文字列を入力してボタンをクリックすると、ActionListenerインターフェースのactionPerformed()メソッドが呼び出され、JButtonクラスのsetText(textField.getText())メソッドによってボタンの表示テキストが更新される仕組みです。

JButtonのテキスト変更のポイント

  • JButtonはAbstractButtonを継承しており、Swingアプリケーションで広く利用できるボタンコンポーネントである
  • クリックイベントはActionListenerのactionPerformed()メソッド内で処理する
  • setText()メソッドを使えば、アプリケーション実行中でもボタンのラベルを自由に変更できる
  • 入力値のチェック(空文字判定など)を組み合わせることで、より堅牢なUIを実現できる

サンプルコード

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JButtonTextChangeTest extends JFrame {
    private JTextField textField;
    private JButton button;
    public JButtonTextChangeTest() {
        setTitle("JButtonTextChange Test");
        setLayout(new FlowLayout());
        textField = new JTextField(20);
        button = new JButton("Initial Button");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ae) {
                if (!textField.getText().equals(""))
                    button.setText(textField.getText());
            }
        });
        add(textField);
        add(button);
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
        setVisible(true);
    }
    public static void main(String[] args) {
        new JButtonTextChangeTest();
    }
}

コードの解説

このプログラムでは、20文字分の幅を持つJTextFieldと、「Initial Button」という初期ラベルを持つJButtonを作成し、FlowLayoutでフレーム上に配置しています。

ボタンにはActionListenerを登録しており、クリック時にテキストフィールドの内容を判定します。equals("")で空文字チェックを行い、何かしらの文字列が入力されている場合のみbutton.setText(textField.getText())を呼び出してボタンの表示を更新します。空欄のままクリックした場合は、元のテキストがそのまま維持されるため、意図しない空ラベルへの変更を防げます。

また、setLocationRelativeTo(null)によりウィンドウを画面中央に表示し、setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)で閉じるボタン押下時にアプリケーションを終了させる、Swingの基本的な定番処理も組み込んでいます。

実行結果

アプリケーションを起動すると、テキストフィールドと「Initial Button」が並んだウィンドウが表示されます。

Java SwingでJButtonのテキストを動的に変更する方法

テキストフィールドに新しい文字列を入力してボタンをクリックすると、ボタンのラベルが即座に入力内容へと切り替わります。

Java SwingでJButtonのテキストを動的に変更する方法

  1. Tkinterでボタンのテキストサイズをウィンドウに合わせて動的に変更する方法

    Tkinterのフレーム内にボタンを作成した際、ボタンのテキストをメインウィンドウのサイズに合わせて動的に拡大・縮小させたいケースはよくあります。ボタン自体はButtonウィジェットを使えば簡単に作成できますが、テキストサイズを動的に変化させるには、いくつかの機能を組み合わせる必要があります。この記事では、テキスト付きのボタンを作成し、Gridメソッドのrowconfigure()とcolumnconfigure()を使って、メインウィンドウ(ルートウィンドウ)のリサイズに追従できるようにする方法を解説します。bind(<Configure>)でイベントを結び付けるボタンのテキスト

  2. 【保存版】テキストの大文字・小文字を一瞬で変換する方法|Word・Googleドキュメント・Mac・オンラインツール対応

    Microsoft WordやGoogleドキュメントで文章を入力した際、「大文字と小文字を間違えて打ってしまった…」という経験はありませんか?「小文字を大文字に(あるいはその逆に)変えたいのに方法がわからない」というお問い合わせを多くいただきます。中には、誤入力した部分を全部消して打ち直そうと考えている方もいますが、実はもっと効率的な解決策があります。幸いなことに、Microsoft Wordをはじめとするほぼすべてのテキストエディタには、選択したテキストの大文字・小文字を変換する機能が標準搭載されています。ITに詳しくない方でも簡単に操作でき、しかもその方法は複数あります。この記事では、そ