質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

Q&A

3回答

1484閲覧

簡易電卓の作り方がわかりせまん。

kopan

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Swing

SwingはJavaに標準で付属するグラフィック関連のクラスライブラリを指します。

0グッド

1クリップ

投稿2021/06/10 05:41

jcpadで簡易電卓を作っているのですが、ここから先がどうすればいいかわかりません。教えていただけますでしょうか。

package task01;

import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class task01 extends JFrame implements ActionListener{

//コンテナのインスタンス変数を定義 Container container; //6つの部品のインスタンス変数を定義 JLabel atai1Label; JLabel atai2Label; JLabel resultLabel; JTextField atai1Field; JTextField atai2Field; JButton tasuButton; JButton hikuButton; JButton kakeruButton; JButton waruButton; JButton cancelButton; //コンストラクタ public task01(String title){ //タイトル設定 this.setTitle(title); //表示位置設定 this.setLocation(200,200); //表示サイズ設定 this.setSize(300,200); //JFrameからコンテナを取得 container=this.getContentPane(); //コンテナのレイアウトにnullを設定 container.setLayout(null); //ラベル部品のインアウトにnullを設定 atai1Label=new JLabel("値1"); atai2Label=new JLabel("値2"); resultLabel=new JLabel("結果"); //入力フィールド部品のインスタンス生成 atai1Field=new JTextField(); atai2Field=new JTextField(); //ボタン部品のインスタンス生成 tasuButton=new JButton("+"); hikuButton=new JButton("-"); kakeruButton=new JButton("×"); waruButton=new JButton("÷"); cancelButton=new JButton("C"); //部品の座標とサイズの設定 atai1Label.setLocation(20,30); atai1Label.setSize(80,20); atai2Label.setLocation(20,60); atai2Label.setSize(80,20); resultLabel.setLocation(20,60); resultLabel.setSize(80,20); atai1Field.setLocation(100,30); atai1Field.setSize(150,20); atai2Field.setLocation(100,60); atai2Field.setSize(150,20); tasuButton.setLocation(30,100); tasuButton.setSize(100,30); hikuButton.setLocation(140,100); hikuButton.setSize(100,30); kakeruButton.setLocation(30,100); kakeruButton.setSize(100,30); waruButton.setLocation(30,100); waruButton.setSize(100,30); cancelButton.setLocation(30,100); cancelButton.setSize(100,30); //部品をコンテナに追加 container.add(atai1Label); container.add(atai2Label); container.add(resultLabel); container.add(atai1Field); container.add(atai2Field); container.add(tasuButton); container.add(hikuButton); container.add(kakeruButton); container.add(waruButton); container.add(cancelButton); //ボタンにアクションリスナを追加 tasuButton.addActionListener(this); hikuButton.addActionListener(this); kakeruButton.addActionListener(this); waruButton.addActionListener(this); cancelButton.addActionListener(this); } public static void main(String[] args){ //タイトル設定と可視化 task01 loginView=new task01("電卓"); loginView.setVisible(true); } public void actionPerformed(ActionEvent event){ value1=Integer.parseInt(value1Txt.getTxt()); value2=Integer.parseInt(value2Txt.getTxt());

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

K_3578

2021/06/10 05:44

考えながら作るんじゃなくて、考えてから作るんです。 考えながら作ってたら方向性があっちこっちに飛んで結局詰まります。
guest

回答3

0

「電卓」とひとえにいっても世の中にある電卓が全て同じではありません。「簡易」と書いたからとそれで要件がすべて説明できるわけではないし、コードから要件は見えません(途中なら尚更)

まずは全体像を決め
機能を決め
機能詳細を決めてください。

そしてその中で何ができていて何ができていないかを常に整理してください。
そうすると問題点も明確になります。他者に質問すべきタイミングは問題点が明確になってからです。

現状で「どうしたらいいかわからない」と聞かれてもこちらも「どうしたらいいかわからない」となります。コードしかありませんから。

投稿2021/06/10 06:06

m.ts10806

総合スコア80875

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

良い例を見つけたので紹介してみる。
計算機のアルゴリズム
上記ページは新人エンジニアの方のブログで、kopanさんと年も経験もそう離れていないと思いますが、
自分との違い分かりますか?
最後のプログラムより途中の考え方を参考にしてみて下さい。

投稿2021/06/16 00:26

kaina

総合スコア418

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

アドバイスになりますが、tasuButtonkakeruButtonなどの同じクラスで似た機能を持つものは配列で宣言すると良いですよ。
その方が一つ一つsetSize(100,30);などを書くよりも楽です。

before

1tasuButton.setSize(100,30); 2kakeruButton.setSize(100,30); 3//その他の処理 4. 5. 6.

after

1JButton[] calcu = new JButton[4]; 2for(int i=0;i<calse.length;i++){ 3 calcu[i] = new JButton(); 4 calcu[i].setSize(100,30); 5 //その他の処理 6 . 7 . 8 . 9}

投稿2021/06/13 06:33

cretter

総合スコア91

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問