图形化计算器(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)] 该文观点仅代表作者本人,今日霍州系信息发布平台,霍州网仅提供信息存储空间服务。

猜你喜欢

私生活混乱、被央视开除、陪睡上位?王冠的私生活谣言太离谱(私生活混乱会影响财运吗)

2016年之后,王冠在央视的出镜次数逐渐减少,又有谣言开始四起,声称她因私生活混乱被央视开除,还编造了深夜被约谈、连夜被赶走的虚假细节。 2024年6月,在上海电视节的白玉兰奖颁奖典礼上,王冠再次与…

私生活混乱、被央视开除、陪睡上位?王冠的私生活谣言太离谱(私生活混乱会影响财运吗)

『张艺谋』:『娱乐圈』️最狠体重教练,对子女却开汉堡绿灯?(『张艺谋』『娱乐圈』️地位)

最近这位75岁的老爷子却以一副体重管理严父的形象刷屏了网络,他对自己的严苛要求和他对子女的完全放任,构成了鲜明的反差,几乎让人忍不住笑出声——他能对自己狠到饿肚子四十年,逼演员们疯狂减重,却对自己的孩子们放任…

『张艺谋』:『娱乐圈』️最狠体重教练,对子女却开汉堡绿灯?(『张艺谋』『娱乐圈』️地位)

茅台发声明 警惕抢购外挂风险(茅台严打辟谣)

1月29日,i茅台平台发布声明称注意到有商家通过网络平台公开售卖所谓i茅台App“抢购外挂”等软件,有网友晒出非i茅台官方通知的批量成交记录。这类行为对公平的市场秩序造成了不良影响

茅台发声明 警惕抢购外挂风险(茅台严打辟谣)

亚马逊2025全年营收同比增长12%,预计今年资本支出达2000亿美元💵(亚马逊下半年)

2月 6 日,亚马逊在美国当地时间 5 日公布了 2025 年第 4 季度与全年的财务数据。去年这家科技巨头实现 7169 亿美元💵营收,同比增长12%;AWS 贡献 1287 亿美元💵,同比增长 20%。 而…

亚马逊2025全年营收同比增长12%,预计今年资本支出达2000亿美元💵(亚马逊下半年)

微博之夜》男艺人出图!『陈哲远』和他撞衣尴尬!『丁禹兮』邓为妆造翻车(微博之夜2026什么时候举行)

敖瑞鹏则选择了一种偏休闲的红毯造型,穿着与众不同的设计,格外引人注目。 邓为和周柯宇的造型则分别展现了他们各自的特色,邓为的白色西装配以简洁的配饰,给人一种清新明亮的气息,周柯宇则选择了一种典雅的深色调西…

《<strong>微博之夜</strong>》男艺人出图!『陈哲远』和他撞衣尴尬!『丁禹兮』邓为妆造翻车(微博之夜2026什么时候举行)