图形化计算器(Swing GUI)

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

猜你喜欢

20年后再看《卧虎藏龙》,为何它依然是华语电影的巅峰?

竹林打斗、飞檐走壁、爱恨情仇——这些元素在《卧虎藏龙》中被李安导演完美融合,创造出一部超越武侠类型片的艺术杰作。特别是『章子怡』塑造的玉娇龙,那种桀骜不驯又脆弱迷茫的气质,让这个角色成为华语电影史上最令人难忘的…

20年后再看《<strong>卧虎藏龙</strong>》,为何它依然是华语电影的巅峰?

后槽牙有个窟窿不疼还用补吗(后槽牙有个窟窿怎么办)

后槽牙出现窟窿,即便未感到疼痛,也应及时修补,以防情况恶化。窟窿可能由龋齿、牙齿外伤或磨损引起,其中龋齿是因细菌产生的酸性物质侵蚀牙齿所致,而外伤和磨损可能与咬硬物或磨牙习惯相关

后槽牙有个窟窿不疼还用补吗(后槽牙有个窟窿怎么办)

娃哈哈经销商崩溃!宗馥莉接班后大动作引热议:新品牌娃小宗 经销商阻力大(娃哈哈经销商赚钱吗)

宗馥莉掌管娃哈哈后,新品牌“娃小宗”引起了网友关注。近日,一份名为“关于开展2026销售年度经销商沟通工作的通知”的文件在网上流传。文件显示,为维护“娃哈哈”品牌使用的合规性,决定从2026年新的销售年度起,更换使用新品牌“娃小宗”

娃哈哈经销商崩溃!宗馥莉接班后大动作引热议:新品牌娃小宗 经销商阻力大(娃哈哈经销商赚钱吗)

AT&amp;T推出AI接线员:智能筛选电话,有效拦截骚扰(att i)

根据AT&amp;T首席数据官安迪·马库斯在一篇博客中的描述,这款AI接线员能够自动接听电话,并通过一系列问题来判断来电者是否为真人或『机器人』️,以及通话内容是否紧急或符合用户设定的标准。如果来电者通过了初步审核,电话…

AT&amp;T推出AI接线员:智能筛选电话,有效拦截骚扰(att i)

辟谣成都绿道自缢女子为骑手 警方已澄清事实(成都绿道线路)

成都市公安局龙泉驿区分局9月16日发布警情通报,近日媒体报道了大面街道辖区绿道发生的一起自缢事件。2025年9月9日凌晨3时许,警方接到群众报警,称在玉石公园内发现一人身亡

辟谣成都绿道自缢女子为骑手 警方已澄清事实(成都绿道线路)