![](/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.