JavaでのSwingを使った簡易電卓作成
Javaについて勉強中の学生です。
よろしくお願いします。
CGIによるプログラムは一通り勉強しました。
次にGUIによるプログラムを勉強中です。
そこで電卓を作ってみようと思いましたが、よくわからないところがあります。
ご教示いただければ幸いです。
一応外見だけは作ることができましたが、イベントを登録するときに電卓のボタンをbtn1,btn2,btn3…とすればイベントを登録することはできるのですが、それだとボタンの分だけ作成しなければならず修正を加えるのが大変になってしまいます。
例)btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
hyozi.setText(hyozi.getText() + "1");
}
}
そこで「btn」に統一しボタンに表示されている文字列を使い簡潔にプログラムをまとめたいのですがどのようにすればよいのかわかりません。以下のプログラムに追加できるようなものを教えていただけないでしょうか?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Dentaku{
private JFrame frame;
private JPanel panel_fun,panel_ten;
private JTextField hyozi;
private JButton btn;
public Dentaku(){
//フレームの作成してレイアウトをセット
frame = new JFrame("簡易電卓プログラム");
frame.setLayout(new BorderLayout());
//パネルを作成してレイアウトをセット
panel_fun = new JPanel();
panel_fun.setLayout(new GridLayout(2,3));
panel_ten = new JPanel();
panel_ten.setLayout(new GridLayout(4,3));
//表示用テキストボックスを作成
hyozi = new JTextField();
//電卓のボタンを作成
panel_fun.add(btn = new JButton("CA"));
panel_fun.add(btn = new JButton("+"));
panel_fun.add(btn = new JButton("-"));
panel_fun.add(btn = new JButton("*"));
panel_fun.add(btn = new JButton("/"));
panel_fun.add(btn = new JButton("="));
panel_ten.add(btn = new JButton("1"));
panel_ten.add(btn = new JButton("2"));
panel_ten.add(btn = new JButton("3"));
panel_ten.add(btn = new JButton("4"));
panel_ten.add(btn = new JButton("5"));
panel_ten.add(btn = new JButton("6"));
panel_ten.add(btn = new JButton("7"));
panel_ten.add(btn = new JButton("8"));
panel_ten.add(btn = new JButton("9"));
panel_ten.add(btn = new JButton("0"));
//フレームに表示用テキストボックスをセット(BorderLayoutの北側)
frame.add(hyozi,BorderLayout.NORTH);
//フレームにパネルをセット(BorderLayoutの中央,南側)
frame.add(panel_fun,BorderLayout.CENTER);
frame.add(panel_ten,BorderLayout.SOUTH);
//フレームの詳細設定
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,250);
frame.setVisible(true);
}
//mainメソッドの定義
public static void main(String[] args){
Dentaku application = new Dentaku();
}
}