gpt4 book ai didi

java - GUI 应用程序显示然后立即退出

转载 作者:行者123 更新时间:2023-11-30 02:44:54 25 4
gpt4 key购买 nike

我们需要编写一个Java图形用户界面(GUI)应用程序,通过从用户处获取要计算的表达式来进行整数运算。我的代码可以编译,但我不知道为什么当它运行时它立即关闭。

这是我的CalculationGenerator.java:

//using GUI to calculate 
public class CalculationGenerator{
public static void main(String[]args)
{
Calculator calculator = new Calculator();
}
}

这是我的Calculator.java:

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.JPanel;
import javax.swing.JTextField;

public class Calculator extends JFrame
{
private static final int FRAME_WIDTH = 400;
private static final int FRAME_HEIGHT = 300;

private JLabel Label;
private JTextField FIELD;
private JButton button;
private int result;

public Calculator()
{
result = 0;
Label = new JLabel("The result is:" + result);

createTextField();
createButton();
createPanel();

setSize(FRAME_WIDTH, FRAME_HEIGHT);
}
//create text field
private void createTextField()
{
Label = new JLabel("what do you want to calculate?");

final int FIELD_WIDTH = 10;
FIELD = new JTextField(FIELD_WIDTH);
FIELD.setText("");
}

class GetResultListener implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
try
{
Calculation();
Label.setText("The result is:" + result);
}
catch(NumberFormatException exception)
{
System.out.println("not an integer");
}
}
}
//calculate
public void Calculation()
{
String s = FIELD.getText();
String[]parts = s.split(" ");
int x = Integer.parseInt(parts[0]);
int y = Integer.parseInt(parts[2]);
String operator = parts[1];

switch(operator)
{
case"+":
result = x + y;
break;
case"-":
result = x - y;
break;
case"*":
result = x * y;
break;
case"/":
result = x / y;
break;
case"%":
result = x % y;
break;
case"^":
result = x ^ y;
break;

}
}
private void createButton()
{
button = new JButton("get result");

ActionListener listener = new GetResultListener();
button.addActionListener(listener);

}

private void createPanel()
{
JPanel panel = new JPanel();
panel.add(Label);
panel.add(FIELD);
panel.add(button);
panel.add(Label);
add(panel);
}
}

最佳答案

初始化计算器后,您需要将 JFrame 设置为可见。

public class CalculationGenerator{
public static void main(String[]args) {
Calculator calculator = new Calculator();
calculator.setVisible(true);
}
}

关于java - GUI 应用程序显示然后立即退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40477671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com