import javax.swing.*;
import java.awt.event.*;
import java.awt.GridLayout;
public class Calculator1{
public void Calculator1(){
JFrame frame = new JFrame("Calculator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
GridLayout grid = new GridLayout(4, 3, 10, 10);
frame.setLayout(grid);
JLabel op1Label= new JLabel("Operand One:");
JTextField operandOne = new JTextField();
operandOne.setText("");
operandOne.setEditable(true);
frame.add(op1Label);
frame.add(operandOne);
JLabel op2Label = new JLabel("Operand Two:");
JTextField operandTwo = new JTextField();
operandTwo.setText("");
operandTwo.setEditable(true);
frame.add(op2Label);
frame.add(operandTwo);
JButton plus = new JButton("+");
frame.add(plus);
JButton minus = new JButton("-");
frame.add(minus);
JButton multiply = new JButton("*");
frame.add(multiply);
JButton divide = new JButton("/");
frame.add(divide);
JButton exponent = new JButton("^");
frame.add(exponent);
JButton route = new JButton("u221A");
frame.add(route);
JButton increment = new JButton("Increment");
frame.add(increment);
JButton decrement = new JButton("Decrement");
frame.add(decrement);
JButton reciprocal = new JButton("Reciprocal");
frame.add(reciprocal);
JLabel resultLabel= new JLabel("Result:");
JTextField result = new JTextField();
result.setText("0");
result.setEditable(false);
frame.add(resultLabel);
frame.add(result);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
Calculator1 calc = new Calculator1();
}
}
我真的很陌生于Java,并试图编写计算器。在我得到要显示的东西后,我将要做的动作侦听器,我让它们在主要的时候工作,所以它应该不会太难。当我将所有代码放入 main 时,它会显示,但是当我尝试将其放入自己的方法中时,程序会编译并运行,但除了 cmd 行之外什么都没有显示。有什么帮助吗?
问题是您正在调用构造函数(使用 new
(,但您的 Calculator1
方法只是一个恰好与类同名的方法,但不是该类的构造函数,因此它使用默认构造函数。若要使其成为构造函数,请删除void
返回值。
public Calculator1() { // without return value it's a constructor
...
}
public static void main(String[] args) {
Calculator1 calc = new Calculator1(); // call the constructor
}
要么使用类的构造函数,要么使用 calc。计算器1((。
更改公共空隙计算器1(( --->公共静态空隙计算器1((并在 main(( 中调用函数
public class Calculator1{
public static void Calculator1(){
JFrame frame = new JFrame("Calculator");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
GridLayout grid = new GridLayout(4, 3, 10, 10);
frame.setLayout(grid);
JLabel op1Label= new JLabel("Operand One:");
JTextField operandOne = new JTextField();
operandOne.setText("");
operandOne.setEditable(true);
frame.add(op1Label);
frame.add(operandOne);
JLabel op2Label = new JLabel("Operand Two:");
JTextField operandTwo = new JTextField();
operandTwo.setText("");
operandTwo.setEditable(true);
frame.add(op2Label);
frame.add(operandTwo);
JButton plus = new JButton("+");
frame.add(plus);
JButton minus = new JButton("-");
frame.add(minus);
JButton multiply = new JButton("*");
frame.add(multiply);
JButton divide = new JButton("/");
frame.add(divide);
JButton exponent = new JButton("^");
frame.add(exponent);
JButton route = new JButton("u221A");
frame.add(route);
JButton increment = new JButton("Increment");
frame.add(increment);
JButton decrement = new JButton("Decrement");
frame.add(decrement);
JButton reciprocal = new JButton("Reciprocal");
frame.add(reciprocal);
JLabel resultLabel= new JLabel("Result:");
JTextField result = new JTextField();
result.setText("0");
result.setEditable(false);
frame.add(resultLabel);
frame.add(result);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
Calculator1 calc = new Calculator1();
Calculator1();
}
}
更改public void Calculator1(){ /* rest of the code */ }
作为public Calculator1(){ /* rest of the code */ }