私はGUIで科学計算機をプログラミングしようとしていますが、これまで指数ボタンx^y)。javaで科学計算機をプログラミングしようとしているのに指数ボタンが機能しない
ここで私はボタンのクリックイベントを持っていますが、ボタンを1回押すだけで2つの値を取る方法がわからないため、動作しません。
private void btnExponentActionPerformed(java.awt.event.ActionEvent evt) {
for (int i = 0; i < 2; i++)
{
if(i == 0)
{
double x = Double.parseDouble(String.valueOf(tfdDisplay.getText()));
}
else if(i == 1)
{
double y = Double.parseDouble(String.valueOf(tfdDisplay.getText()));
}
tfdDisplay.setText(null);
}
double ops = Math.pow(x, y);
tfdDisplay.setText(String.valueOf(ops));
}
私はその後、計算、その後、彼らは実際の指数値として入れ、次の値をとり、その後、ユーザーは、指数ボタンをクリックする必要があり、それがテキストフィールドに現在値に利用したいと思います「=」ボタンをクリックすると答えます。
私はオンラインで見て、指数関数ボタンを使って科学計算機を作成する方法を示したビデオを見つけましたが、彼のコードをコーディングする方法に従えば、正しく機能しません。代わりに、ユーザーが自分の指数を置くのではなく、テキストフィールドの内部を正方形にします。
電卓が実際にどのように見えるかを写真で示します。事前に
ありがとう!
編集: ここでは、「=」ボタン用にプログラムしたものがあります。
String answer;
secondnum = Double.parseDouble(tfdDisplay.getText());
if(operations == "+")
{
result = firstnum + secondnum;
answer = String.format("%.2f", result);
tfdDisplay.setText(answer);
}
else if(operations == "-")
{
result = firstnum - secondnum;
answer = String.format("%.2f", result);
tfdDisplay.setText(answer);
}
else if(operations == "*")
{
result = firstnum * secondnum;
answer = String.format("%.2f", result);
tfdDisplay.setText(answer);
}
else if(operations == "/")
{
result = firstnum/secondnum;
answer = String.format("%.2f", result);
tfdDisplay.setText(answer);
}
「=」ボタンに追加する必要がありますか?だから、
else if(operations == "^")
{
result = Math.pow(firstnum, secondnum);
answer = String.format("%.2f", result);
tfdDisplay.setText(answer);
}
for-loopのポイントは何ですか?これは、あなたが有益なスコープの問題を作り出しています。このコードは、私が何か不足していない限り実行されるべきではありません。あなたは同じ要素から値を引き出しているので、 'x'と' y'を同じようにしています。 'y'が' tfdDisplay'以外の要素で設定されることを意味しましたか? – Carcigenicate
テキストフィールドの仕組みを誤解していると思います。ユーザーの入力を待たずに最初の値が解析され、2番目の値はループの最後にクリアされるため、常に空になります。ヒントとして、問題のこの問題を解決する方法を説明します。指数ボタンが押されたときに最初の値を取得する必要があり、等しいボタンが押されたときに最初の値を取得する必要があります。 – Obicere