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

猜你喜欢

『张馨予』在塞纳河放飞自我,盘腿坐姿接地气,笑容灿烂藏不住好心情(『张馨予』在哪)

『张馨予』在巴黎塞纳河畔这状态也太绝了吧!只见她随性地盘腿往地上一坐,完全没有『明星』️架子,笑得眼睛弯成了小月牙,连被风吹起的发丝都在雀跃舞动,隔着屏幕都能感受到她满到溢出来的快乐!被暖心友情滋养着,又坚持着严格的身…

『张馨予』在塞纳河放飞自我,盘腿坐姿接地气,笑容灿烂藏不住好心情(『张馨予』在哪)

涉知名演员『唐嫣』、『刘诗诗』,7段录音曝光!(艺人『唐嫣』)

10月31日,《繁花》幕后编剧古二爆料录音,录音中王家卫给古二讲工作安排时说道:“告诉你,『唐嫣』呢,是个很装的人”。 记者注意到,10月31日上午8点,IP地址显示在新加坡的古二开始在小红书发布多段王家卫、…

涉知名演员『唐嫣』、『刘诗诗』,7段录音曝光!(艺人『唐嫣』)

『井柏然』也没想到,女友刘雯再破天花板,她让奚梦瑶和模特圈沉默了(『井柏然』新歌)

照片没有登上热搜,却在一小时内被转发了七千次,配文只有一句:“她还在飞,他没拖后腿。” 屏幕前的你,如果也在硬撑,不妨想想那个雨夜的水坑——高跟鞋👠踩进去会湿,但湿了就湿了,前面还有下一场秀、下一班机、下一碗…

『井柏然』也没想到,女友刘雯再破天花板,她让奚梦瑶和模特圈沉默了(『井柏然』新歌)

各大杂志银十封面大公开,聚是浪姐成团,散是时尚icon(各大杂志排名)

九月渐行渐远,银十的封面『明星』️们纷纷亮相,『Vogue』的辛芷蕾、嘉人的『杨幂』、ELLE的『宋佳』和BAZAAR的『倪妮』,这四位女神级人物,竟然曾在『Vogue』的金九20周年刊上大放异彩! 『宋佳』,这位冷冽气场与奢华珠宝的质感…

各大杂志银十封面大公开,聚是浪姐成团,散是时尚icon(各大杂志排名)

女性♀️月经推迟和提前哪个更可怕(女性♀️月经推迟和月经提前哪个重要)

月经周期的波动是常见的生理现象,提前或推迟本身没有绝对的好坏之分,关键在于具体原因。月经异常可能与激素波动、精神压力、多囊卵巢综合征、甲状腺功能异常以及子宫内膜病变等因素有关

女性♀️月经推迟和提前哪个更可怕(女性♀️月经推迟和月经提前哪个重要)