以下是使用Java文本框控件实现Java数组的下标界限完整代码,包括详细注释:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Test extends JFrame implements ActionListener {
// 定义窗口中需要用到的组件
private JTextField textField;
private JTextArea textArea;
public static void main(String[] args) {
new Test();
}
// 构造函数,在其中初始化窗口和组件,并添加事件监听器
public Test() {
setTitle("Array Index Limit");
setSize(400, 300);
// 创建一个面板并将其设置为流式布局(FlowLayout)
JPanel panel = new JPanel(new FlowLayout());
// 添加输入框、按钮和输出区域到面板上
JLabel label = new JLabel("Enter an array index:");
panel.add(label);
textField = new JTextField(10); // 输入框可以容纳10个字符宽度
panel.add(textField);
JButton button = new JButton("Submit");
button.addActionListener(this); // 将当前对象作为事件处理程序注册给按钮
panel.add(button);
textArea = new JTextArea();
textArea.setEditable(false);// 输出区不可编辑
JScrollPane scrollPane = new JScrollPane(textArea, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);// 设置滚动条出现条件
scrollPane.setPreferredSize(getSize());
add(panel, "North");// 面板放在北边
add(scrollPane, "Center");// 滑块放在中间
setVisible(true);// 显示窗口
}
// 事件处理程序,当按钮被点击时执行该方法
public void actionPerformed(ActionEvent e) {
try {
int index = Integer.parseInt(textField.getText()); // 将输入框中的文本转换为整数类型
int[] arr = {1,45,12,234,345,234,12,123,123}; // 创建一个长度为10的数组
if (index < 0 || index >= arr.length) { // 判断下标是否越界
throw new ArrayIndexOutOfBoundsException("Array Index Out Of Bounds!");
} else {
textArea.setText("The array element at position " + index + " is: " + arr[index]);
}
} catch (NumberFormatException ex) {
JOptionPane.showMessageDialog(this, "Please enter a valid integer!", "Error", JOptionPane.ERROR_MESSAGE);
} catch (ArrayIndexOutOfBoundsException ex) {
JOptionPane.showMessageDialog(this, ex.getMessage(), "Error", JOptionPane.ERROR_MESSAGE);
} finally {
textField.setText(""); // 清空输入框内容
textField.requestFocus();
}// 输入焦点回到文本域
}
}
在上述代码中,我们首先创建了一个 ArrayIndexLimit
类,并继承自 JFrame。然后,在构造函数里面初始化了窗口和组件,并添加了事件监听器。
其中使用 JPanel 来容纳需要用到的控件(包括 JLabel、 JTextField 和 JButton),并将其设置成流式布局(FlowLayout)。接着通过 add() 方法把这些控件加入进去。
最后还要注意一点:由于输出区可能会出现滚动条,因此我们采用 JScrollPane 控件来包装 JTextArea,以便在需要时出现滚动条。
事件处理程序 actionPerformed() 方法中的代码主要是实现了对输入框内容进行判断,并根据下标是否越界输出相应信息。如果用户没有正确地输入整数,则会弹出一个错误提示窗口;而当数组下标超过范围时则抛出 ArrayIndexOutOfBoundsException 异常并显示相关消息。最后,在 finally 块里面清空文本域和将焦点重新设置到文本框上方便再次使用。
在这个程序中,我们使用了 Java 的文本框控件 JTextField 和 JTextArea。其中,JTextField 是一个单行的输入框组件;而 JTextArea 则是多行的输出区域。
在构造函数里面初始化窗口和组件时,我们通过 new 关键字创建了两个对象:textField 和 textArea,并设置它们各自的属性(如大小、是否可编辑等)。然后将其添加到 JPanel 中并最终加入 JFrame 窗口中显示出来。
事件处理程序 actionPerformed() 方法则实现了对用户输入内容进行判断,并根据情况输出相应信息。具体地说,在该方法内部:
- 首先尝试把用户从 textField 输入进去的字符串转换成整数类型 index。
- 接着定义一个长度为 10 的数组 arr 并检查下标是否越界:
- 如果超过范围,则会抛出 ArrayIndexOutOfBoundsException 异常;
- 否则就可以直接访问指定位置上元素值并用 setText() 方法更新 textArea 显示结果。
- 在 try-catch 块结构之外还有一段代码清空 textField 内容以便再次使用,并且重新聚焦于此处方便新一轮操作开始。
总之,在这份完整代码示例当中展示给大家如何利用Java Swing 提供好看又易于交互式开发工具包快速搭建简洁美观但功能强大GUI 应用程式。
标签:index,下标,textArea,add,实例,new,046,textField From: https://www.cnblogs.com/SwapEnd/p/17372153.html