質問編集履歴
5
test
CHANGED
File without changes
|
test
CHANGED
@@ -130,8 +130,6 @@
|
|
130
130
|
|
131
131
|
}else {
|
132
132
|
|
133
|
-
|
134
|
-
|
135
133
|
System.out.println("pushEqualにつき入力不可");
|
136
134
|
|
137
135
|
}
|
4
test
CHANGED
File without changes
|
test
CHANGED
@@ -37,8 +37,6 @@
|
|
37
37
|
});
|
38
38
|
|
39
39
|
tbNum[1].setOnAction((ActionEvent event)->{
|
40
|
-
|
41
|
-
System.out.println("pushEqual is "+pushEqual);
|
42
40
|
|
43
41
|
hogestr =tf1.getText();
|
44
42
|
|
3
test
CHANGED
File without changes
|
test
CHANGED
@@ -126,8 +126,6 @@
|
|
126
126
|
|
127
127
|
pushDot=true;
|
128
128
|
|
129
|
-
System.out.println("pushDotはいま"+pushDot);
|
130
|
-
|
131
129
|
}
|
132
130
|
|
133
131
|
});
|
2
test
CHANGED
File without changes
|
test
CHANGED
@@ -136,7 +136,7 @@
|
|
136
136
|
|
137
137
|
|
138
138
|
|
139
|
-
System.out.println("pushEqualにつき
|
139
|
+
System.out.println("pushEqualにつき入力不可");
|
140
140
|
|
141
141
|
}
|
142
142
|
|
1
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
buttonのsetOnActionを纏めたい
|
test
CHANGED
@@ -2,201 +2,15 @@
|
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
|
5
|
+
javafxで計算機をつくりたいが
|
6
6
|
|
7
|
-
java(javafx)で計算機をつくっているのですが、
|
8
|
-
|
9
|
-
0-9ボタン
|
7
|
+
0-9ボタン押下処理を以下のように10回記述しないで纏めたい
|
10
|
-
|
11
|
-
for文に入れたいのですが、調べてもよく分かりませんでした。
|
12
|
-
|
13
|
-
同じようなものを10個記述しないで済むにはどうしたらいいでしょうか。
|
14
|
-
|
15
|
-
(//各種ボタン 数字の箇所です)
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
また、「=」(イコール)ボタンを押したあとは、さらに数字入力できないようにロックしたかったのですが、
|
20
|
-
|
21
|
-
if文が無視されてしまいます。
|
22
|
-
|
23
|
-
アドバイスをいただけましたらありがたいです。どうぞよろしくお願いします。
|
24
8
|
|
25
9
|
|
26
10
|
|
27
11
|
|
28
12
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
### 該当のソースコード
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
package application;
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
import javafx. application.Application;
|
42
|
-
|
43
|
-
import javafx.event.ActionEvent;
|
44
|
-
|
45
|
-
import javafx. scene.Scene;
|
46
|
-
|
47
|
-
import javafx.scene.control.TextField;
|
48
|
-
|
49
|
-
import javafx.scene.control.ToggleButton;
|
50
|
-
|
51
|
-
import javafx.scene.control.ToggleGroup;
|
52
|
-
|
53
|
-
import javafx.scene.layout.HBox;
|
54
|
-
|
55
|
-
import javafx.scene.layout.TilePane;
|
56
|
-
|
57
|
-
import javafx.scene.layout.VBox;
|
58
|
-
|
59
|
-
import javafx.scene.text.Font;
|
60
|
-
|
61
|
-
import javafx. stage.Stage;
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
public class Calculator_EXE extends Application {
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
int kigou =0;//何の記号がおされたか。1は+,2は-,3は*,4は/
|
70
|
-
|
71
|
-
double hogenum;//数字を格納
|
72
|
-
|
73
|
-
String hogestr;//入力中の数字文字を格納
|
74
|
-
|
75
|
-
boolean pushEqual;//=キーが押されたかどうか
|
76
|
-
|
77
|
-
boolean pushDot = false;//小数点がおされたかどうか
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
public static void main(String[] args) {
|
84
|
-
|
85
|
-
launch(args);
|
86
|
-
|
87
|
-
}
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
@Override
|
92
|
-
|
93
|
-
public void start(Stage myStage) {
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
TextField tf1 = new TextField("");
|
98
|
-
|
99
|
-
tf1.setPrefWidth(400);
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
//ここはわからなかったのでコピーした
|
104
|
-
|
105
|
-
//数字キーボタンを配列に入れる
|
106
|
-
|
107
|
-
ToggleGroup group1 = new ToggleGroup();
|
108
|
-
|
109
|
-
ToggleButton[] tbNum = new ToggleButton[10];
|
110
|
-
|
111
|
-
for(int i=0; i<10; i++) {
|
112
|
-
|
113
|
-
tbNum[i] = new ToggleButton(i+"");
|
114
|
-
|
115
|
-
tbNum[i].setToggleGroup(group1);
|
116
|
-
|
117
|
-
tbNum[i].setUserData(i); // データをセット
|
118
|
-
|
119
|
-
tbNum[i].setFont( Font.font("meiryo",15) );
|
120
|
-
|
121
|
-
tbNum[i].setPrefWidth(100);
|
122
|
-
|
123
|
-
tbNum[i].setPrefHeight(50);
|
124
|
-
|
125
|
-
if(i%2==0) {
|
126
|
-
|
127
|
-
tbNum[i].setStyle("-fx-background-color:red; -fx-text-fill:black; -fx-border-color:#555;");
|
128
|
-
|
129
|
-
|
13
|
+
```java
|
130
|
-
|
131
|
-
tbNum[i].setStyle("-fx-background-color:white; -fx-text-fill:black; -fx-border-color:#555;");
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
}
|
136
|
-
|
137
|
-
}
|
138
|
-
|
139
|
-
//記号 同上
|
140
|
-
|
141
|
-
String[] calcArray = {"","=", "AC", "+", "-", "*", "/", "."};
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
ToggleGroup group2 = new ToggleGroup();
|
146
|
-
|
147
|
-
ToggleButton[] tbOpe = new ToggleButton[calcArray.length];
|
148
|
-
|
149
|
-
for(int i=0; i<calcArray.length; i++) {
|
150
|
-
|
151
|
-
tbOpe[i] = new ToggleButton(calcArray[i]+"");
|
152
|
-
|
153
|
-
tbOpe[i].setToggleGroup(group2);
|
154
|
-
|
155
|
-
tbOpe[i].setUserData(calcArray[i]); // データをセット
|
156
|
-
|
157
|
-
tbOpe[i].setFont( Font.font("meiryo",15) );
|
158
|
-
|
159
|
-
tbOpe[i].setPrefWidth(100);
|
160
|
-
|
161
|
-
tbOpe[i].setPrefHeight(50);
|
162
|
-
|
163
|
-
tbOpe[i].setStyle("-fx-background-color:#4287f5; -fx-text-fill:black; -fx-border-color:#555;");
|
164
|
-
|
165
|
-
}
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
//------------
|
170
|
-
|
171
|
-
//pane
|
172
|
-
|
173
|
-
//------------
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
HBox pane2 = new HBox();
|
178
|
-
|
179
|
-
pane2.getChildren().addAll(tf1);
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
HBox pane3 = new HBox();
|
184
|
-
|
185
|
-
pane3.getChildren().addAll(tbOpe[2]);//ACボタン
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
TilePane pane5 = new TilePane();
|
190
|
-
|
191
|
-
pane5.getChildren().addAll(tbNum[7],tbNum[8],tbNum[9],tbOpe[6],tbNum[4],tbNum[5],tbNum[6],tbOpe[5],tbNum[1],tbNum[2],tbNum[3],tbOpe[4],tbNum[0],tbOpe[7],tbOpe[1],tbOpe[3]);
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
VBox pane = new VBox();
|
196
|
-
|
197
|
-
pane.getChildren().addAll(pane2,pane3,pane5);
|
198
|
-
|
199
|
-
pane.setStyle("-fx-background-color:#deebff;");
|
200
14
|
|
201
15
|
|
202
16
|
|
@@ -304,7 +118,7 @@
|
|
304
118
|
|
305
119
|
tbOpe[7].setOnAction((ActionEvent event)->{
|
306
120
|
|
307
|
-
if(pushDot==false) {//小数点は2回押せない
|
121
|
+
if(pushDot==false) {//小数点は2回押せない
|
308
122
|
|
309
123
|
hogestr =tf1.getText();
|
310
124
|
|
@@ -330,200 +144,4 @@
|
|
330
144
|
|
331
145
|
|
332
146
|
|
333
|
-
//=ボタン
|
334
|
-
|
335
|
-
tbOpe[1].setOnAction((ActionEvent event)->{
|
336
|
-
|
337
|
-
hogenum =calc(tf1.getText(),kigou);
|
338
|
-
|
339
|
-
//doubleの処理
|
340
|
-
|
341
|
-
if((hogenum*10)%10==0) {
|
342
|
-
|
343
|
-
System.out.println("小数点以下が0");
|
344
|
-
|
345
|
-
hogestr=hogenum+"";
|
346
|
-
|
347
|
-
hogestr=hogestr.replace(".0", "");
|
348
|
-
|
349
|
-
System.out.println("hogestrで表示");
|
350
|
-
|
351
|
-
tf1.setText("計算結果は"+hogestr);
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
}else {
|
356
|
-
|
357
|
-
tf1.setText("計算結果は"+hogenum);
|
358
|
-
|
359
|
-
}
|
360
|
-
|
361
|
-
|
362
|
-
|
363
|
-
pushEqual=true;
|
364
|
-
|
365
|
-
System.out.println("pushEqualはいま"+pushEqual);
|
366
|
-
|
367
|
-
});
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
//+ボタン
|
372
|
-
|
373
|
-
tbOpe[3].setOnAction((ActionEvent event)->{
|
374
|
-
|
375
|
-
hogenum =calc(tf1.getText(),kigou);
|
376
|
-
|
377
|
-
tf1.setText("");
|
378
|
-
|
379
|
-
kigou=1;//最後に押された記号は足す
|
380
|
-
|
381
|
-
});
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
//-ボタン
|
386
|
-
|
387
|
-
tbOpe[4].setOnAction((ActionEvent event)->{
|
388
|
-
|
389
|
-
hogenum =calc(tf1.getText(),kigou);
|
390
|
-
|
391
|
-
tf1.setText("");
|
392
|
-
|
393
|
-
kigou=2;//最後に押された記号はひく
|
394
|
-
|
395
|
-
});
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
//*ボタン
|
402
|
-
|
403
|
-
tbOpe[5].setOnAction((ActionEvent event)->{
|
404
|
-
|
405
|
-
hogenum =calc(tf1.getText(),kigou);
|
406
|
-
|
407
|
-
tf1.setText("");
|
408
|
-
|
409
|
-
kigou=3;//最後に押された記号はかける
|
410
|
-
|
411
|
-
});
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
//わるボタン
|
416
|
-
|
417
|
-
tbOpe[6].setOnAction((ActionEvent event)->{
|
418
|
-
|
419
|
-
hogenum =calc(tf1.getText(),kigou);
|
420
|
-
|
421
|
-
tf1.setText("");
|
422
|
-
|
423
|
-
kigou=4;//最後に押された記号はわる
|
424
|
-
|
425
|
-
});
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
//ACボタン
|
430
|
-
|
431
|
-
tbOpe[2].setOnAction((ActionEvent event)->{
|
432
|
-
|
433
|
-
tf1.setText("");
|
434
|
-
|
435
|
-
//l1.setText("");
|
436
|
-
|
437
|
-
hogenum=0;
|
438
|
-
|
439
|
-
hogestr="";
|
440
|
-
|
441
|
-
kigou=0;
|
442
|
-
|
443
|
-
pushEqual=false;
|
444
|
-
|
445
|
-
pushDot=false;
|
446
|
-
|
447
|
-
});
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
Scene scene = new Scene(pane,400,270);//シーンのサイズ
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
myStage.setTitle("電子計算機");
|
456
|
-
|
457
|
-
myStage.setScene(scene);
|
458
|
-
|
459
|
-
myStage.show();
|
460
|
-
|
461
|
-
}
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
/*--- 関数 ---*/
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
public double calc(String tf1,int kigou) {
|
470
|
-
|
471
|
-
System.out.println("here is in funcion calc");
|
472
|
-
|
473
|
-
if (kigou==0) {
|
474
|
-
|
475
|
-
hogenum = hogenum + Double.parseDouble(tf1);
|
476
|
-
|
477
|
-
}else if (kigou==1) {
|
478
|
-
|
479
|
-
hogenum = hogenum + Double.parseDouble(tf1);
|
480
|
-
|
481
|
-
}else if(kigou==2) {
|
482
|
-
|
483
|
-
hogenum = hogenum - Double.parseDouble(tf1);
|
484
|
-
|
485
|
-
}else if(kigou==3) {
|
486
|
-
|
487
|
-
hogenum = hogenum * Double.parseDouble(tf1);
|
488
|
-
|
489
|
-
}else if(kigou==4) {
|
490
|
-
|
491
|
-
hogenum = hogenum / Double.parseDouble(tf1);
|
492
|
-
|
493
|
-
}
|
494
|
-
|
495
|
-
pushDot=false;
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
System.out.println("hogenumはいま"+hogenum);
|
500
|
-
|
501
|
-
System.out.println("kigouはいま"+kigou);
|
502
|
-
|
503
|
-
System.out.println("pushDotはいま"+pushDot);
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
return hogenum;
|
508
|
-
|
509
|
-
}
|
510
|
-
|
511
|
-
}
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
```ここに言語名を入力
|
516
|
-
|
517
|
-
javafx,java
|
518
|
-
|
519
147
|
```
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
### 試したこと
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
### 補足情報(FW/ツールのバージョンなど)
|