![](/img/trans.png)
[英]I'm trying to create a BMI-calculator with Java using GUI, but I recieve an syntaxerror
[英]I'm trying to create a calculator using JFrame and having some difficulties
基本上,事情是會出現的,所以我可以對其進行測試並確保我處在正確的軌道上。 這是我的主要“計算器”文件的代碼:
package simplecalculator;
import javax.swing.JFrame;
import javax.swing.UIManager;
public class Calculator {
public static void main(String[] args) {
JFrame calculatorFrame = new Listener();
calculatorFrame.setSize(1000, 0x3e8);
calculatorFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
calculatorFrame.setVisible(true);
}
}
我為這些類提供了單獨的偵聽器文件:
package simplecalculator;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class Listener extends JFrame {
private JLabel enterFirstNumber;
private JLabel enterSecondNumber;
private JLabel resultLabel;
private JTextField getFirstNumber;
private JTextField getSecondNumber;
private JButton addition;
private JButton subtraction;
private JButton multiplication;
private JButton division;
private JPanel panelOne;
private JPanel panelTwo;
private JPanel panelThree;
private static final int frameWidth = 1000;
private static final int frameHeight = 1000;
int firstNumber;
int secondNumber;
double finalNumber;
public void Calc(){
setSize(frameWidth, frameHeight);
enterFirstNumber = new JLabel("Enter First Number: ");
getFirstNumber = new JTextField("0", 12);
enterSecondNumber = new JLabel("Enter Second Number: ");
getSecondNumber = new JTextField("0", 12);
}
public void buttons()
{
addition = new JButton("+");
addition.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
firstNumber = Integer.parseInt(getFirstNumber.getText());
secondNumber = Integer.parseInt(getSecondNumber.getText());
finalNumber = firstNumber + secondNumber;
resultLabel.setText("" + finalNumber);
}
});
subtraction = new JButton("-");
subtraction.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
firstNumber = Integer.parseInt(getFirstNumber.getText());
secondNumber = Integer.parseInt(getSecondNumber.getText());
finalNumber = firstNumber - secondNumber;
resultLabel.setText("" + finalNumber);
}
});
multiplication = new JButton("*");
multiplication.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
firstNumber = Integer.parseInt(getFirstNumber.getText());
secondNumber = Integer.parseInt(getSecondNumber.getText());
finalNumber = firstNumber * secondNumber;
resultLabel.setText("" + finalNumber);
}
});
division = new JButton("/");
division.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
firstNumber = Integer.parseInt(getFirstNumber.getText());
secondNumber = Integer.parseInt(getSecondNumber.getText());
finalNumber = firstNumber / secondNumber;
resultLabel.setText("" + finalNumber);
}
});
}
private void panels(){
panelOne = new JPanel();
panelOne.setLayout(new GridLayout(2, 2));
panelOne.add(enterFirstNumber);
panelOne.add(getFirstNumber);
panelOne.add(enterSecondNumber);
panelOne.add(getSecondNumber);
panelTwo = new JPanel();
panelTwo.setLayout(new GridLayout(2, 2));
panelTwo.add(addition);
panelTwo.add(subtraction);
panelTwo.add(multiplication);
panelTwo.add(division);
panelThree = new JPanel();
panelThree.add(resultLabel);
}
}
基本上我需要知道的是:
1)我走對了嗎? 2)如何獲得一個實際的計算器,而不是一個空白的applet?
對不起,如果我聽起來像個菜鳥。 我是一名計划學的學生,我已經花了大約12個小時來嘗試解決這個問題。
您永遠不會向JFrame添加任何組件。 所以很明顯,它不包含任何東西。 您應該在JFrame子類中添加一個構造函數,並使其向框架中添加一些組件。
而且,您還應該縮進代碼以使其可讀,並遵守Java命名約定。
嘗試構建基本的計算器時有很多陷阱:在GUI布局中,在輸入/格式化數字並提供所需的精度等方面。
您可以使用此示例在開始時跳過大多數內容: https : //github.com/plokhotnyuk/calculator/tree/fee1b741aa74d659b8e30ad66d26d9ca6a2f6bc5
主要思想(從端到端測試開始)是從這本令人驚奇的書中借來的: http : //www.growing-object-oriented-software.com/
隨意分叉和破解! 享受使用TDD和可執行文件規范進行開發!!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.