目次> 第19章> 19.4 | TOPUPPREVNEXT |
変数の型をきめ、アクションリスナの取り付け方をきめました。 ここまででプログラムの構造が決まりました。
CalcV9p.java との相違点(行番号が赤字の部分を追加)
001:import java.awt.* ;
002:import java.awt.event.* ;
003:import javax.swing.* ;
004:
005:public class CalcV9a extends JFrame {
006:
007: static JLabel disp = new JLabel(" ", SwingConstants.RIGHT); // 結果表示領域
008: static final Color COLOR = new Color(224,255,255); // ボタンの色 light cyan
009: static final Font FONT = new Font("DialogInput", Font.BOLD, 16); // ボタンのフォント
010: static long in; // 入力中の数値
011: static long reg = 0L; // 計算結果
012: static String op; // 直前の演算子
013: static int state = 3; // 1: 最初の数値を入力中。inを表示中。
014: // 2: 演算子の入力直後。regを表示中。
015: // 3: 2番目以降の数字を入力中。inを表示中。
016: // 4: = の入力直後。regを表示中。
017: static final String PLUS = "+";
018: static final String MINUS = "−";
019: static final String MILTI = "×";
020: static final String DIVIDE = "÷";
021:
022: public CalcV9a() {
023: setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
024: Container cont = getContentPane();
025: cont.setLayout(new BorderLayout());
026:
027: JPanel keypan = new JPanel(new GridLayout(0,4));
028:
029: String[] buttonface = { "Tax", "BS", "CE", "AC", // ボタンの表示
030: "7", "8", "9", DIVIDE,
031: "4", "5", "6", MILTI,
032: "1", "2", "3", MINUS,
033: "0", "+/-", "=", PLUS };
034: ActionListener[] actionlistener = // ボタンのアクションリスナ
035: { new ktax(), new kbs(), new kce(), new kac(),
036: new kdigit(), new kdigit(), new kdigit(), new kop(),
037: new kdigit(), new kdigit(), new kdigit(), new kop(),
038: new kdigit(), new kdigit(), new kdigit(), new kop(),
039: new kdigit(), new kpm(), new keq(), new kop() };
040:
041: JButton bn;
042:
043: for(int i=0; i<buttonface.length; i++) {
044: bn = new JButton( buttonface[i] );
045: bn.setBackground(COLOR);
046: bn.setFont(FONT);
047: bn.addActionListener(actionlistener[i]);
048: bn.setFocusPainted(false);
049: keypan.add( bn );
050: }
051:
052: disp.setBackground(Color.WHITE);
053: disp.setOpaque(true);
054: disp.setFont(new Font("DialogInput", Font.BOLD, 24));
055: cont.add(disp, BorderLayout.NORTH);
056: cont.add(keypan, BorderLayout.CENTER);
057:
058: pack();
059: setVisible(true);
060: }
061:
062: class kdigit implements ActionListener {
063: public void actionPerformed(ActionEvent e) {
064: }
065: }
066:
067: class kop implements ActionListener {
068: public void actionPerformed(ActionEvent e) {
069: }
070: }
071:
072: class ktax implements ActionListener {
073: public void actionPerformed(ActionEvent e) {
074: }
075: }
076:
077: class kbs implements ActionListener {
078: public void actionPerformed(ActionEvent e) {
079: }
080: }
081:
082: class kce implements ActionListener {
083: public void actionPerformed(ActionEvent e) {
084: }
085: }
086:
087: class kac implements ActionListener {
088: public void actionPerformed(ActionEvent e) {
089: }
090: }
091:
092: class kpm implements ActionListener {
093: public void actionPerformed(ActionEvent e) {
094: }
095: }
096:
097: class keq implements ActionListener {
098: public void actionPerformed(ActionEvent e) {
099: }
100: }
101:
102: public static void main(String arg[]) {
103: new CalcV9a();
104: }
105:
106:}
更新日:2013/12/09 | TOPUPPREVNEXT |