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

猜你喜欢

荣耀Robot Phone即将量产,手机形态迎来革命性突破(荣耀智能『机器人』️叫什么名字)

荣耀Robot Phone即将量产,手机形态迎来革命性突破(荣耀智能『机器人』️叫什么名字)

2025年养宠新趋势:纯木薯猫砂大袋不易粘底,如何选择最合适的近无尘植物猫砂?(2025年养宠物数据)

随着2025年养宠热潮兴起,许多铲屎官面临选择高品质猫砂的困扰。本篇文章将帮助你深入了解纯木薯猫砂的优势,如不易粘底、接近无尘等特点,并教你如何挑选适合家中毛孩子的近无尘植物猫砂。此外,我们还将分析预算与配置权衡的策略,以及避开常见误区的方

2025年养宠新趋势:纯木薯猫砂大袋不易粘底,如何选择最合适的近无尘植物猫砂?(2025年养宠物数据)

酒精性心肌病💊是喝酒导致的吗(酒精性心肌病可以治好吗)

酒精性心肌病通常由长期过量饮酒引起,是一种因酒精毒性作用导致的心肌病变。主要症状包括心脏扩大和心力衰竭。 该疾病的发病机制与酒精及其代谢产物对心肌细胞的直接毒性作用有关。长期大量饮酒会损伤心肌细胞,造成心肌纤维化,影响心脏收缩和舒张功能

酒精性心肌病💊是喝酒导致的吗(酒精性心肌病可以治好吗)

安哥拉黑花岗岩皮革面石材加工价格(安哥拉黑花岗岩多少一立方米的)

我们在给客户报价时,通常会根据三个变量调整:一是板厚,厚度超过30mm后,锯切与研磨时间呈非线性增长,比如50mm厚板的加工耗时是20mm的2.3倍左右,相应成本提升约38%;二是异形加工需求,如倒角、开槽、…

安哥拉黑花岗岩皮革面石材加工价格(安哥拉黑花岗岩多少一立方米的)

小姐姐一身黑,简约却不简单,利落又有细节

在魔都外滩的景致里,这位女士的『穿搭』堪称“简约黑调的高级演绎”。 一身黑色中袖紧身连体衣是造型核心,高领设计添了精致感,中袖长度平衡了露肤度,紧身剪裁精准勾勒身材曲线,把利落与性感糅合得恰到好处。下装延伸的紧…

小姐姐一身黑,简约却不简单,利落又有细节