質問編集履歴

5

2020/02/29 06:59

投稿

karasumaru
karasumaru

スコア7

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

2020/02/29 06:58

投稿

karasumaru
karasumaru

スコア7

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

2020/02/29 06:58

投稿

karasumaru
karasumaru

スコア7

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

2020/02/29 06:56

投稿

karasumaru
karasumaru

スコア7

test CHANGED
File without changes
test CHANGED
@@ -136,7 +136,7 @@
136
136
 
137
137
 
138
138
 
139
- System.out.println("pushEqualにつきfalse");
139
+ System.out.println("pushEqualにつき入力不可");
140
140
 
141
141
  }
142
142
 

1

2020/02/29 06:55

投稿

karasumaru
karasumaru

スコア7

test CHANGED
@@ -1 +1 @@
1
- java初心者です。計算機のbuttonの処理につ
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ボタンしたときの処理を10個分記述するのはどうんだろうと悩んでいます。
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
- }else {
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/ツールのバージョンなど)