图形化计算器(Swing GUI)

图形化计算器(Swing GUI)

java

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class GraphicalCalculator extends JFrame {

private JTextField display;

private double firstNumber;

private String operator;

private boolean startNewNumber;

public GraphicalCalculator() {

setTitle("Java Calculator");

setSize(300, 400);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLayout(new BorderLayout());

display = new JTextField();

display.setEditable(false);

display.setHorizontalAlignment(JTextField.RIGHT);

display.setFont(new Font("Arial", Font.BOLD, 24));

add(display, BorderLayout.NORTH);

JPanel buttonPanel = new JPanel();

buttonPanel.setLayout(new GridLayout(5, 4, 5, 5));

String[] buttons = {

"7", "8", "9", "/",

"4", "5", "6", "*",

"1", "2", "3", "-",

"0", ".", "=", "+",

"C", "CE", "√", "^"

};

for (String text : buttons) {

JButton button = new JButton(text);

button.setFont(new Font("Arial", Font.BOLD, 18));

button.addActionListener(new ButtonClickListener());

buttonPanel.add(button);

}

add(buttonPanel, BorderLayout.CENTER);

}

private class ButtonClickListener implements ActionListener {

@Override

public void actionPerformed(ActionEvent e) {

String command = e.getActionCommand();

if (command.matches("[0-9]")) {

if (startNewNumber) {

display.setText(command);

startNewNumber = false;

} else {

display.setText(display.getText() + command);

}

} else if (command.equals(".")) {

if (!display.getText().contains(".")) {

display.setText(display.getText() + ".");

}

} else if (command.matches("[+\\-*/^√]")) {

firstNumber = Double.parseDouble(display.getText());

operator = command;

startNewNumber = true;

} else if (command.equals("=")) {

double secondNumber = Double.parseDouble(display.getText());

double result = 0;

switch (operator) {

case "+": result = firstNumber + secondNumber; break;

case "-": result = firstNumber - secondNumber; break;

case "*": result = firstNumber * secondNumber; break;

case "/": result = firstNumber / secondNumber; break;

case "^": result = Math.pow(firstNumber, secondNumber); break;

case "√": result = Math.sqrt(firstNumber); break; // 简化处理

}

display.setText(String.valueOf(result));

startNewNumber = true;

} else if (command.equals("C")) {

display.setText("0");

firstNumber = 0;

operator = "";

startNewNumber = true;

} else if (command.equals("CE")) {

display.setText("0");

startNewNumber = true;

}

}

}

public static void main(String[] args) {

SwingUtilities.invokeLater(() -> {

GraphicalCalculator calc = new GraphicalCalculator();

calc.setVisible(true);

});

}

}

特别声明:[图形化计算器(Swing GUI)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

李克勤18岁长子回香港探亲,全家外出吃火锅,卢淑仪搭肩俩子合照(李克勤几个孩)

他的行李里没有名牌服饰,而是一盒刚刚冲好的16mm胶片——这是一部他拍摄的期末作业,讲述一个香港留学生在布鲁克林天台晒腐竹,结果被误认为毒品而被抓的乌龙事件。李立仁把这段视频剪进了自己的vlog,字幕只有一句…

李克勤18岁长子回香港探亲,全家外出吃火锅,卢淑仪搭肩俩子合照(李克勤几个孩)

拉丁舞眼影怎么选?西方舞眼妆艺术化妆指南(拉丁舞『妆容』教程 眼睛)

区别于日常『妆容』的柔和,专业舞台眼妆是一门关于光影、色彩持久力与结构表达的科学。专业舞台眼影的研发,会深入考量色素颗粒对不同波长光线的反射与吸收率,确保色彩在特定光环境下依然饱满、鲜明、富有立体感。 光谱适配…

拉丁舞眼影怎么选?西方舞眼妆艺术化妆指南(拉丁舞『妆容』教程 眼睛)

12年前,宁坐宝马车哭,不坐单车笑的马诺,如今34岁仍然单身

这一番话彻底激怒了马诺,她在愤怒中离开了节目现场,留下了一句:我不是大家想象的那个样子。2019年,马诺发布了一条微博,透露当年在《非诚勿扰》上的言论其实都是事先安排好的,节目组早已设定了剧本,这一爆料让她重…

12年前,宁坐宝马车哭,不坐单车笑的马诺,如今34岁仍然单身

人到中年玩表更上头,一年买了4只表(人到中年心情说说很现实的说说)

一开始确实不适应36mm的大小,乍一看显小(因为以前戴的最小表盘都是37mm的,新款日志实际尺寸也就勉强35mm),但时间长了才发现,好像这才是戴机械表最完美的样子,舒适度拉满,表盘大小和手腕恰到好处的匹配…

人到中年玩表更上头,一年买了4只表(人到中年心情说说很现实的说说)

一图读懂!南宁海事局2026年工作报告(快速了解南宁)

来源|办公室…

一图读懂!南宁海事局2026年工作报告(快速了解南宁)