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

猜你喜欢

夫妻生活里,微胖的女人,有这三大好处,你认可吗?(夫妻生活该怎么处理)

她们所传递出的正能量,也能够给更多的女性♀️带来鼓励和启发,让她们明白到,真正的美并不应该只局限于身材的纤细,而应该是内外兼修的,应该包含着健康、自信、阳光等多种元素。 在媒体传播中,我们也应该去抵制身材歧视和…

夫妻生活里,微胖的女人,有这三大好处,你认可吗?(夫妻生活该怎么处理)

『张子枫』凭一己之力救场!《秋雪漫过的冬天》高光发言戳中董事长(『张子枫』唱的是什么歌)

尤其是『张子枫』饰演的周遇安与『赵又廷』饰演的姜家齐之间的互动,从最初的彼此试探到最后的互相托举,尽管两人没有一段狗血的爱情故事,却凭借细腻的互动,打动了无数观众。小哲全程劝她及时脱身,但周遇安内心早已埋下了守护的种…

『张子枫』凭一己之力救场!《<strong>秋雪漫过的冬天</strong>》高光发言戳中董事长(『张子枫』唱的是什么歌)

机甲片《战神金刚》情节曝光,恐龙片《原始战争2》确认(战神机甲图片)

另外,《侏罗纪世界5》按理说应该也该有消息了,虽然各种传闻不断,但是项目到目前也没有正式官宣,多个传闻都说寡姐会回归主演,而她的日程非常紧张,正在忙着新《驱魔人》,接下来还要拍《新蝙蝠侠2》。 《鬼玩人》系…

机甲片《<strong>战神金刚</strong>》情节曝光,恐龙片《<strong>原始战争2</strong>》确认(战神机甲图片)

中国新型肺癌早诊试剂盒获批上市 提升早期诊断率(中国新增肺癌人数)

1月26日,中国科学院杭州医学研究所宣布,由该所研究员、核酸分子医学中心副主任胡海科研团队主导研发的十三种肺癌相关抗体检测试剂盒(流式荧光免疫法)正式获得国家药监局三类医疗器械注册证

中国新型肺癌早诊试剂盒获批上市 提升早期诊断率(中国新增肺癌人数)

『张予曦』深V黑裙魅惑来袭,妩媚与破碎感完美交融!(『张予曦』黑色衣服)

这组黑裙写真里,她把清冷、妩媚、破碎感揉成了独属于她的时尚语言。桌角的红色蕙兰静静盛放,和她微启的红唇遥遥呼应,营造出一种“欲说还休”的氛围感,清冷骨相里透着江南女子的柔婉。 『长发』如海藻般披在后背,与露背设计…

『张予曦』深V黑裙魅惑来袭,妩媚与破碎感完美交融!(『张予曦』黑色衣服)