Javaでカウンタープログラムを実装する方法をわかりやすく解説
この記事では、JavaのSwingを使ってシンプルなカウンター(数を数える)アプリケーションを実装する方法を解説します。このプログラムでは、JLabelでカウント用のラベルを表示し、JTextFieldで現在のカウント値を保持し、JButtonで「追加(Add)」「削除(Remove)」「リセット(Reset)」の3つのボタンを作成します。
「Add」ボタンをクリックするとJTextField内のカウントが1ずつ増加し、「Remove」ボタンをクリックすると1ずつ減少します。さらに「Reset」ボタンをクリックすると、カウントは0にリセットされます。
実装例
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class CounterTest extends JFrame implements ActionListener {
private JLabel label;
private JTextField text;
private JButton addBtn, removeBtn, resetBtn;
private int count;
public CounterTest() {
setTitle("Counter Test");
setLayout(new FlowLayout());
count = 0;
label = new JLabel("Count:");
text = new JTextField("0", 4);
addBtn = new JButton("Add");
removeBtn = new JButton("Remove");
resetBtn = new JButton("Reset");
// ボタンにアクションリスナーを登録
addBtn.addActionListener(this);
removeBtn.addActionListener(this);
resetBtn.addActionListener(this);
add(label);
add(text);
add(addBtn);
add(removeBtn);
add(resetBtn);
setSize(375, 250);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == addBtn) {
count++; // カウントを1増加
text.setText(String.valueOf(count));
repaint();
} else if (ae.getSource() == removeBtn) {
count--; // カウントを1減少
text.setText(String.valueOf(count));
repaint();
} else if (ae.getSource() == resetBtn) {
count = 0; // カウントを0にリセット
text.setText(String.valueOf(count));
repaint();
}
}
public static void main(String[] args) {
new CounterTest();
}
}
コードのポイント
- ActionListenerの実装:CounterTestクラスはActionListenerインターフェースを実装しており、各ボタンにaddActionListener(this)で登録することでクリックイベントを受け取れます。
- イベントの判別:actionPerformedメソッド内でae.getSource()を使い、どのボタンがクリックされたかを判定して処理を分岐させています。
- 表示の更新:String.valueOf(count)でint型のカウント値を文字列に変換し、setText()でJTextFieldに反映させます。
- ウィンドウ設定:setLocationRelativeTo(null)で画面中央にウィンドウを表示し、setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)で閉じるボタン押下時にアプリを終了させます。
実行結果
プログラムを実行すると、次のようなウィンドウが表示されます。ボタンを操作すると、テキストフィールド内の数値がリアルタイムに変化します。

-
JavaでJTreeの各ノードに右クリックメニューを実装する方法
JTreeはJComponentクラスのサブクラスであり、階層構造を持つデータを表示するために使用されるコンポーネントです。ノードの中にさらにノードを追加することで親子関係を表現でき、ツリー内の各要素が1つのノードとして扱われます。また、各ノードは展開・折りたたみ可能です。 JTreeの各ノードに対してマウスの右クリック操作を実装するには、MouseAdapterクラスのmouseReleased()メソッドを使用します。さらに、JPopupMenuクラスのshow()メソッドを呼び出すことで、クリックされたツリーノード上にポップアップメニューを表示できます。 実装例 以下のコードでは、ツリー
-
JavaでJTableに検索機能を実装する方法をわかりやすく解説
JTableは、複雑なデータ構造を表形式で表示するためのSwingコンポーネントで、JComponentのサブクラスです。JTableはMVC(Model View Controller)デザインパターンに従って設計されており、データを行と列の形式で画面に表示できます。また、TableModelListener、TableColumnModelListener、ListSelectionListener、CellEditorListener、RowSorterListenerといった各種リスナーインターフェースを利用することで、柔軟なイベント処理が可能です。JTableに検索機能を実装するには