首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

Java课程设计报告.zip

行业研究 200.18KB 3 需要积分: 1
立即下载

资源介绍:

课程设计报告
/** * Description: 基于 AWT 实现的计算器 * * @author: zzq * @Date: 2022 -12 -07 * @Time: 14:17 */ import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.text.NumberFormat; public class Calculator { private JFrame frame; private ImageIcon icon; private JTextField textField; private JButton[] button; private JPanel panel; private JLabel label; /** * data:当前输入的数据 */ private String data = ""; /** * isLeftAvailable:判断数据应该向哪一个操作数中存储 */ private boolean isLeftAvailable; /** * left, right:左右操作数 */ private double left, right; private String prevOperaotor = ""; /** * init:初始化 frame */ public void init() { setMyFrame(); setMyTextField(); setMyButton(); //setMyLabel(); display(); } /** * setMyFrame: * @description: 设置窗体 */ private void setMyFrame() { frame = new JFrame(); // 设置 frame 的坐标 frame.setLocation(700, 150); // 设置 frame 的大小 frame.setSize(450, 540); // 设置 frame 的标题 frame.setTitle("Shepard's Calculator"); // 禁用窗口大小调整 frame.setResizable(false); //设置布局,自定义 frame.setLayout(null); // 关闭窗体 } /** * setMyTextField: * @description: 设置文本域 */ private void setMyTextField() //文本框 { textField = new JTextField("0"); // 设置文本框大小位置 textField.setBounds(20,15,400,60); // 设置文本框字体 textField.setFont(new Font("黑体", Font.BOLD, 35)); // 设置背景颜色 textField.setBackground(new Color( 230, 230, 250)); frame.add(textField); } /** * setMyButton: * @description: 设置按键事件 */ private void setMyButton() { // 按钮文本 String[] arr = { "del","cls","%","/", "7","8","9","*", "4","5","6","+", "1","2","3","-", "+/-","0",".","=", }; // 按钮 button = new JButton[arr.length]; // 创建面板(画布) panel = new JPanel(); // 设置面板的布局方式 panel.setBounds(20, 90, 400, 350); // 网格布局 panel.setLayout(new GridLayout(5, 4, 8, 8)); for(int i = 0; i < button.length; i++) { // 创建按钮 button[i] = new JButton(arr[i]); // 设置按钮字体 button[i].setFont(new Font("黑体", Font.CENTER_BASELINE, 20)); // 设置按钮背景颜色 button[i].setBackground(new Color(242, 240, 235)); // 设置 = 号的特殊颜色 if(button.length - 1 == i) { button[i].setBackground(new Color(211, 120, 129)); } // 添加事件 int idx = i; // 设置鼠标监听 button[i].addMouseListener(new MouseAdapter() { // 点击事件 @Override public void mouseClicked(MouseEvent e) { // 获取按钮上的内容 click(button[idx].getText()); } // 鼠标进入组件事件 @Override public void mouseEntered(MouseEvent e) { button[idx].setFont(new Font("黑体", Font.CENTER_BASELINE, 35)); button[idx].setBackground(new Color(240, 255, 255)); button[idx].setForeground(new Color(255, 99, 71)); } // 鼠标离开组件事件 @Override public void mouseExited(MouseEvent e) { button[idx].setFont(new Font("黑体", Font.CENTER_BASELINE, 20)); button[idx].setBackground(new Color(242, 240, 235)); button[idx].setForeground(new Color(0, 0, 0)); } }); // 按钮添加到面板 panel.add(button[i]); } frame.add(panel); } /** * setMyLabel: * @description: 设置标签 */ // private void setMyLabel() // { // // 标签 // label = new JLabel(); // label.setText(""); // label.setBounds(40, 460, 300, 40); // // frame.add(label); // } public void click(String content) { String operator = ""; if("1".equals(content)) { data += "1"; textField.setText(data); }else if("2".equals(content)){ data += "2"; textField.setText(data); }else if("3".equals(content)){ data += "3"; textField.setText(data); }else if("4".equals(content)){ data += "4"; textField.setText(data); }else if("5".equals(content)){ data += "5"; textField.setText(data); }else if("6".equals(content)){ data += "6"; textField.setText(data); }else if("7".equals(content)){ data += "7"; textField.setText(data); }else if("8".equals(content)){ data += "8"; textField.setText(data); }else if("9".equals(content)){ data += "9"; textField.setText(data); }else if("0".equals(content)){ data += "0"; textField.setText(data); }else if(".".equals(content)){ data += "."; textField.setText(data); }else if("+/-".equals(content)){ // 找不到负号,代表这是正数 if(data.indexOf('-') < 0) { data = "-" + data; } // 负数 else { data = data.substring(1); } textField.setText(data); }else if("%".equals(content)){ data = Double.parseDouble(data) / 100 + ""; textField.setText(data); }else if("+".equals(content)){ operator = "+"; cal(operator); }else if("-".equals(content)){ operator = "-"; cal(operator); }else if("*".equals(content)){ operator = "*"; cal(operator); }else if("/".equals(content)){ operator = "/"; cal(operator); }else if("=".equals(content)){ operator = "="; cal(operator); }else if("del".equals(content)){ if(data.length() != 0) { data = data.substring(0, data.length() - 1); } textField.setText(data); }else if("cls".equals(content)){ data = ""; isLeftAvailable = false; textField.setText(data); } } /** * @method: display * @description: 设置 frame * @note: 如果把 display 函数内的语句写在 setMyFrame 方法中,frame 中显示不出来 label * 且需要点击一下 文本域 后才能显示文本域 */ public void display() { // 设置关闭 frame 窗口时退出程序 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

资源文件列表:

Java课程设计报告.zip 大约有10个文件
  1. Graduation Design/Calculator.java 10.25KB
  2. Graduation Design/java计算器.iml 429B
  3. Graduation Design/Main.java 247B
  4. Graduation Design/mmm.java 221B
  5. Graduation Design/【Java 课程设计】计算器.png 111.7KB
  6. Graduation Design/out/production/java计算器/Calculator$1.class 1.37KB
  7. Graduation Design/out/production/java计算器/Calculator.class 5.52KB
  8. Graduation Design/out/production/java计算器/java计算器.iml 429B
  9. Graduation Design/out/production/java计算器/Main.class 444B
  10. Graduation Design/out/production/java计算器/【Java 课程设计】计算器.png 111.7KB
0评论
提交 加载更多评论
其他资源 Java课程设计报告-基于spring-boot的航天知识交流平台的开发.zip
课程设计报告
Java语言程序设计课程实验报告及问题解答.zip
课程设计报告
Java语言程序设计基础篇大二部分课程实验报告及课堂代码.zip
课程设计报告
NUAA编译原理课程设计Pascal子集语言PL0编译器详细设计报告.zip
课程设计报告
Java程序设计课程作业代码及实验报告.zip
课程设计报告
HFUT 课程设计报告.zip
课程设计报告
HFUT 课程设计报告.zip
C语言数据结构课程程序设计数据结构实验报告 221218.zip
课程设计报告
C语言实现通讯录课程设计包含C语言课程设计报告仅供参考.zip
课程设计报告