Java Swing界面程序:通过用户输入获取一维数组最小值

Hazel
Hazel
发布时间:2026-10-14| 5人浏览过
原创

本文将详细讲解如何利用 Java Swing 框架开发一款简易桌面应用,用于获取用户在一维数组中输入数据的最小值。该过程包含文本框输入校验、字符串分割成整型数组以及通过循环比较提取数值极值的完整流程。

应用场景与目标结果

在实际的软件应用中,往往需要直接处理用户输入的多项数值,并快速进行统计分析。本示例的目标是实现一个带有图形界面的 Java 程序:
1. 在文本框中输入多个由空格分隔的整数;
2. 点击“计算”按钮后,程序解析这些数字;
3. 自动找出所有输入整数中的最小值,并将其显示在界面上指定位置。

准备条件与核心思路

为了确保程序的健壮性,在处理用户输入的原始字符串之前,必须建立严格的验证机制,防止非法字符导致运行时异常。

核心处理步骤如下:
第一步:使用 trim() 去除输入字符串首尾的空格,若结果为空则提示用户重新输入。
第二步:遍历输入字符串的每个字符,利用 Character.isDigit() 配合空格判断,拦截包含非数字内容的非法输入。
第三步:通过正则表达式(如 " {1,}")将验证通过的字符串按空格切分为字符串数组,再利用 Integer.valueOf() 将其转换为整型一维数组。
第四步:初始化一个变量存放第一个数组元素作为最小值,随后使用 for 循环遍历整个整型数组,逐一比对并更新最小值变量。

具体操作代码实现

以下代码完整展示了如何在 JFrame 中搭建 UI 布局,并在按钮点击事件触发时执行上述逻辑:

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JOptionPane;

public class ArrayMinValue {

	private JFrame frame;
	private JTextField textField;
	JLabel lblNewLabel_1 = new JLabel();
	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					ArrayMinValue window = new ArrayMinValue();
					window.frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 */
	public ArrayMinValue() {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame("获取一维数组最小值");
		frame.setBounds(100, 100, 450, 150);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);
		
		JLabel lblNewLabel = new JLabel("请在文本框中输入多个整数,以空格为分隔符。例如:3 5 2 562 125");
		lblNewLabel.setBounds(10, 10, 414, 15);
		frame.getContentPane().add(lblNewLabel);
		
		textField = new JTextField();
		textField.setBounds(10, 35, 414, 21);
		frame.getContentPane().add(textField);
		textField.setColumns(10);        	
		lblNewLabel_1.setBounds(115, 70, 309, 15);
		frame.getContentPane().add(lblNewLabel_1);
		
		JButton button = new JButton("计算");
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				do_button_actionPerformed(e);
			}
		});
		button.setBounds(10, 66, 93, 23);
		frame.getContentPane().add(button);        
	}
	
	protected void do_button_actionPerformed(ActionEvent e) {
		String arrayStr = textField.getText().trim();			   //去除左右空格
		if(arrayStr.equals("")){
			JOptionPane.showMessageDialog(null, "请输入数字内容");
			return;
		}
		for (int i = 0; i < arrayStr.length(); i++) {					// 过滤非法输入
			char charAt = arrayStr.charAt(i);
			if (!Character.isDigit(charAt) && charAt != ' ') {
				JOptionPane.showMessageDialog(null, "输入包含非数字内容");
				textField.setText("");
				return;
			}
		}
		String[] numStrs = arrayStr.split(" {1,}");			   // 分割字符串
		int[] numArray = new int[numStrs.length];			   // 创建整型数组
		// 转换输入为整型数组
		for (int i = 0; i < numArray.length; i++) {
			numArray[i] = Integer.valueOf(numStrs[i]);
		}
		int min = numArray[0];									      // 创建最小数变量
		for (int j = 0; j < numArray.length; j++) {
			if (min > numArray[j]) {								// 提取最小整数
				min = numArray[j];
			}
		}
		lblNewLabel_1.setText("数组中最小的数是:" + min);	         //显示最小值到指定的标签中
	}
}

运行效果与验证

编译并运行上述代码后,将弹出一个标题为“获取一维数组最小值”的窗口。当输入正确的空格分隔数字并按下计算键后,系统将即时返回结果。以下是正常执行后的界面状态示意图:

简要总结与注意事项

该示例清晰地演示了 Java 桌面开发中从 GUI 构建到数据流处理的闭环流程。值得注意的几个技术要点是:
- 边界安全:务必在调用 split 或数组索引前,确认输入不为空,且字符仅包含合法的 ASCII 数字和空格,否则 NumberFormatException 将中断程序。
- 算法基础:找最小值的操作本质上是对线性结构的一次全遍历,时间复杂度为 O(n),是处理此类统计需求最直观且高效的方法。

以上就是Java获取一维数组最小值实现的详细内容,更多关于Java数组操作与Swing界面开发的资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。