当前位置: 首页 > news >正文

6-47选择整数计算

整数计算:
*在这里插入图片描述*
用swing组件来实现整数计算,需要对整数计算的值进行校验。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;public class IntegerCalculator extends JFrame implements ActionListener {private JCheckBox[] checkBoxes;private JTextField[] textFields;private JButton selectAllButton;private JButton multiSelectButton;private JButton sumButton;private JTextField sumDisplayField;public IntegerCalculator(int numIntegers) {setTitle("选择整数计算");setSize(600, 400);this.setLocationRelativeTo(null);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JPanel panel = new JPanel();panel.setLayout(new GridLayout(numIntegers + 3, 2));checkBoxes = new JCheckBox[numIntegers];textFields = new JTextField[numIntegers];for (int i = 0; i < numIntegers; i++) {checkBoxes[i] = new JCheckBox();textFields[i] = new JTextField();panel.add(checkBoxes[i]);panel.add(textFields[i]);}this.selectAllButton = new JButton("全选");panel.add(selectAllButton);this.selectAllButton.addActionListener(this);this.multiSelectButton = new JButton("多项选择");panel.add(multiSelectButton);this.multiSelectButton.addActionListener(this);this.sumButton = new JButton("求和");panel.add(sumButton);this.sumButton.addActionListener(this);sumDisplayField = new JTextField();sumDisplayField.setEditable(false);panel.add(sumDisplayField);add(panel);setVisible(true);}public void actionPerformed(ActionEvent event) {if (event.getSource() == this.selectAllButton) {for (JCheckBox checkBox : checkBoxes) {checkBox.setSelected(true);}} else if (event.getSource() == this.multiSelectButton) {int[] selectedIntegers = new int[checkBoxes.length];int count = 0;for (int i = 0; i < checkBoxes.length; i++) {if (checkBoxes[i].isSelected()) {String text = textFields[i].getText();if (!text.isEmpty()) {try {selectedIntegers[count++] = Integer.parseInt(text);} catch (NumberFormatException ex) {JOptionPane.showMessageDialog(null, text + "不能转换成数字,忽略");return;}}}}int[] validSelectedIntegers = new int[count];for (int i = 0; i < count; i++) {validSelectedIntegers[i] = selectedIntegers[i];}if (count > 0) {String displayText = "[";for (int i = 0; i < count; i++) {displayText += validSelectedIntegers[i];if (i < count - 1) {displayText += ", ";}}displayText += "]";JOptionPane.showMessageDialog(null, "选择整数:" + displayText);}} else if (event.getSource() == this.sumButton) {int sum = sum(textFields);if (sum != 0) {sumDisplayField.setText(String.valueOf(sum));} else {sumDisplayField.setText("0");}}}public int sum(JTextField[] text) {int sum = 0;for (int i = 0; i < text.length; i++) {String textArea = text[i].getText();if (!textArea.isEmpty() && checkBoxes[i].isSelected()) {try {int x = Integer.parseInt(textArea);sum += x;} catch (Exception e) {String str = textArea + "不能被转换成数字,忽略";JOptionPane.showMessageDialog(null, str);return 0;}}}return sum;}public static void main(String[] args) {IntegerCalculator calculator = new IntegerCalculator(6);}
}
http://www.lryc.cn/news/383251.html

相关文章:

  • 什么是Redis?|介绍与使用及特点浅记
  • LeetCode题练习与总结:只出现一次的数字Ⅱ--137
  • Live Wallpaper Themes 4K Pro for Mac v19.9 超高清4K动态壁纸
  • vue3+ts:监听dom宽高变化函数
  • 数据库浅识及MySQL的二进制安装
  • 机器学习之数学基础(七)~过拟合(over-fitting)和欠拟合(under-fitting)
  • ⭐最新版!SpringBoot正确集成PageHelper姿势,不再被误导!
  • 解决:Xshell通过SSH协议连接Ubuntu服务器报“服务器发送了一个意外的数据包,received:3,expected:20”
  • [学习笔记] 禹神:一小时快速上手Electron笔记,附代码
  • Java stream操作流常用的方式
  • 【C#】图形图像编程
  • 埃特巴什码加解密小程序
  • Golang笔记:使用serial包进行串口通讯
  • EasyExcel 导出批注信息
  • HttpServletRequest・getContentLeng・getContentType区别
  • Matlab|【防骗帖】考虑时空相关性的风电功率预测误差建模与分析
  • 【Android面试八股文】说一说ListView卡顿的原因以及相对应的优化策略
  • Kotlin 中的内联函数
  • KALI LINUX 开启ssh免登录服务及固定ip及
  • 亮数据,一款新的低代码爬虫利器!
  • 配置OSPF认证(华为)
  • 关于ip地址的网页无法访问navigator的gpu、媒体、蓝牙等设备的解决方法
  • 深入理解外观模式(Facade Pattern)及其实际应用
  • 为什么永远不会有语言取代 C/C++?
  • Python 全栈体系【四阶】(六十一)
  • 工控必备C#
  • 【设计模式之基于特性的动态路由映射模式】
  • GB 16807-2009 防火膨胀密封件
  • 从零开始做题:老照片中的密码
  • 考研数学|张宇和武忠祥,强化能不能同时跟?