📄 exam9_5.java
字号:
/*这个程序是对例8.4程序的修改
*程序名为: Exam9_5.java
*是一个演示自定义异常的示例程序
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Exam9_5 extends JFrame implements ActionListener
{
JTextField no = new JTextField(10);
JTextField result = new JTextField(10);
JPanel jp=new JPanel(); //创建窗格容器摆放相关组件
JTextArea jt=new JTextArea(5,20); //创建多行文本框对象显示学生的相关信息
JScrollPane js=new JScrollPane(jt); //在滚动容器中显示学生信息
JButton next=new JButton("下一个");
JButton exit=new JButton("退出");
public Exam9_5()
{
setTitle("成绩录入 KeyEvent 事件演示");
Container rootPane=this.getContentPane(); //获得摆放组件的窗口容器
rootPane.setLayout(new FlowLayout()); //在窗口上以流布局摆放组件
jp.setLayout(new GridLayout(0,2)); //在窗格容器上以网格布局摆放组件
jp.add(new JLabel("学号")); //将组件摆放到窗格上
jp.add(no); //......
jp.add(new JLabel("成绩")); //......
jp.add(result); //......
jp.add(exit); //......
jp.add(next); //......
rootPane.add(jp); //将窗格对象jp添加到窗口上
rootPane.add(js); //将滚动窗格对象js添加到窗口上
jt.setEditable(false); //设置多行文本框是不可编辑的
exit.addActionListener(this); //注册exit按钮的监听对象
next.addActionListener(this); //注册next按钮的监听对象
setSize(250,200); //设置窗口的大小
setVisible(true);
setDefaultCloseOperation(3);
}
/********主方法*********/
public static void main( String[] args ) //程序的入口方法
{
new Exam9_5();
}
/*********ActionListener接口方法*************/
public void actionPerformed(ActionEvent e) //实现单击按钮事件
{
Object obj=e.getSource(); //获取事件源
if(obj==next) //设置下一个
{
String student_no=no.getText();
int rs=Integer.parseInt(result.getText());
Result s1=new Result(student_no,rs); //创建Result对象
try
{
if(s1.isResult()) //检查输入的成绩是否合格,若不合格将引发异常
{
jt.append(student_no+" "+rs+"\n");
no.setText("");
result.setText("");
no.requestFocus(); //定位输入位置
}
}
catch(ResultOutOfBoundsException ee) //捕捉并处理异常
{
JOptionPane.showMessageDialog(null,ee.toString(),"数据录入错误",-1);
result.requestFocus();
}
}
else //退出
{
System.exit(0);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -