質問編集履歴

3

タイトル変更

2022/06/20 02:35

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- java 電卓作成 改善方法
1
+ java calculation        
test CHANGED
File without changes

2

コマンド修正

2022/06/20 02:34

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -3,171 +3,7 @@
3
3
  import java.awt.event.*;
4
4
  import javax.swing.JTextField;
5
5
 
6
- class Key extends Panel {
7
- /**
8
- *
9
- */
10
- private static final long serialVersionUID = 1L;
11
- Button k0, k1, k2, k3, k4, k5, k6, k7, k8, k9, kd, km, ks, ka, kdp, ke;
12
-
13
- Button createButton(String k, ActionListener listener) {
14
- Button b = new Button(k);
15
-
16
- add(b);
17
-
18
- if (listener != null) {
19
- b.addActionListener(listener);
20
- }
21
- return b;
22
- }
23
-
24
- Key(ActionListener listener) {
25
- setLayout(new GridLayout(4, 4));
26
- setFont(new Font("Courier", Font.BOLD, 20));
27
-
28
- k7 = createButton("7", listener);
29
- k8 = createButton("8", listener);
30
- k9 = createButton("9", listener);
31
- kd = createButton("/", listener);
32
- k4 = createButton("4", listener);
33
- k5 = createButton("5", listener);
34
- k6 = createButton("6", listener);
35
- km = createButton("*", listener);
36
- k1 = createButton("1", listener);
37
- k2 = createButton("2", listener);
38
- k3 = createButton("3", listener);
39
- ks = createButton("-", listener);
40
- k0 = createButton("0", listener);
41
- kdp = createButton(".", listener);
42
- ke = createButton("=", listener);
43
- ka = createButton("+", listener);
44
- }
45
- }
46
-
47
- class Test extends Panel implements ActionListener {
48
- /**
49
- *
50
- */
51
- private static final long serialVersionUID = 1L;
52
- static double a = 0, b = 0, r = 0;
53
- static int op = 0;
54
-
55
- JTextField t;
56
- Key key;
57
- int il;
58
-
59
- public void actionPerformed(ActionEvent e) {
60
- if (e.getActionCommand() == "0") {
61
- t.setText(t.getText().concat("0"));
62
- } else if (e.getActionCommand() == "1") {
63
- t.setText(t.getText().concat("1"));
64
- } else if (e.getActionCommand() == "2") {
65
- t.setText(t.getText().concat("2"));
66
- } else if (e.getActionCommand() == "3") {
67
- t.setText(t.getText().concat("3"));
68
- } else if (e.getActionCommand() == "4") {
69
- t.setText(t.getText().concat("4"));
70
- } else if (e.getActionCommand() == "5") {
71
- t.setText(t.getText().concat("5"));
72
- } else if (e.getActionCommand() == "6") {
73
- t.setText(t.getText().concat("6"));
74
- } else if (e.getActionCommand() == "7") {
75
- t.setText(t.getText().concat("7"));
76
- } else if (e.getActionCommand() == "8") {
77
- t.setText(t.getText().concat("8"));
78
- } else if (e.getActionCommand() == "9") {
79
- t.setText(t.getText().concat("9"));
80
- } else if (e.getActionCommand() == ".") {
81
- t.setText(t.getText().concat("."));
82
- }
83
-
84
- if (e.getActionCommand() == "+") {
85
- a = Double.parseDouble(t.getText());
86
- op = 1;
87
- t.setText("");
88
- } else if (e.getActionCommand() == "-") {
89
- a = Double.parseDouble(t.getText());
90
- op = 2;
91
- t.setText("");
92
- } else if (e.getActionCommand() == "*") {
93
- a = Double.parseDouble(t.getText());
94
- op = 3;
95
- t.setText("");
96
- } else if (e.getActionCommand() == "/") {
97
- a = Double.parseDouble(t.getText());
98
- op = 4;
99
- t.setText("");
100
- } else if (e.getActionCommand() == "=") {
101
- b = Double.parseDouble(t.getText());
102
-
103
- switch (op) {
104
- case 1:
105
- r = a + b;
106
- break;
107
- case 2:
108
- r = a - b;
109
- break;
110
- case 3:
111
- r = a * b;
112
- break;
113
- case 4:
114
- r = a / b;
115
- break;
116
- default:
117
- r = 0;
118
- }
119
- t.setText("" + r);
120
- }
121
- }
122
-
123
- public void init() {
124
- setLayout(new BorderLayout());
125
-
126
- key = new Key(this);
127
- t = new JTextField();
128
- t.setHorizontalAlignment(JTextField.RIGHT);
129
- t.setPreferredSize(new Dimension(50, 30));
130
- t.setFont(new Font("Courier", Font.BOLD, 15));
131
-
132
- add(t, "North");
133
- add(key, "Center");
134
- }
135
-
136
- public void start() {
137
- il = 0;
138
-
139
- t.setText(String.valueOf(il));
140
- }
141
-
142
- public static void main(String[] args) {
143
- Frame fr = new Frame("Calc");
144
- Test test = new Test();
145
-
146
- fr.addWindowListener(new WindowAdapter() {
147
- public void windowClosing(WindowEvent e) {
148
- System.exit(0);
149
- }
150
- });
151
-
152
- test.init();
153
-
154
- fr.add(test, "Center");
155
- fr.pack();
156
-
157
- test.start();
158
- fr.setVisible(true);
159
- }
160
- }
161
6
 
162
7
  ```
163
8
 
164
- javaで簡易電卓を作成しており、何とか計算結果が得られるところまで書くことはできましたが、あと少しで躓いています。
165
- 改善したい点は、
166
- 1.最初に表示される0を、数字を入力すると消えるようにしたい。
167
- 2.最初に0を続けて入力出来ないようにしたい。
168
- 3. 演算子や小数点を連続で押せないように(押しても反応しないように?)したい。
169
- 4.計算結果が〇.0の時に小数点を表示させないようにしたい。
170
9
 
171
- どなたかこれらについて教えていただけませんか。
172
- よろしくお願いします。
173
-

1

タイトル

2022/06/18 17:35

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- java 初心者です。
1
+ java 電卓作成 改善方法
test CHANGED
File without changes