⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyexam.java

📁 java学习课件
💻 JAVA
字号:
package ch8;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class KeyExam extends JFrame implements ActionListener,KeyListener
{
  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 KeyExam()
  {
 	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); //设置多行文本框是不可编辑的
 	no.addKeyListener(this); //注册no的按键监听对象 
 	result.addKeyListener(this); //注册result的按键监听对象 
 	exit.addActionListener(this);  //注册exit按钮的监听对象
 	next.addActionListener(this);  //注册next按钮的监听对象
	setSize(250,200); //设置窗口的大小
	setVisible(true);
	setDefaultCloseOperation(3);
  }
  /********主方法*********/
  public static void main( String[] args ) //程序的入口方法
  {
    new KeyExam();
  }
  /*********ActionListener接口方法*************/ 
  public void actionPerformed(ActionEvent e)  //实现单击按钮事件
  {
    Object obj=e.getSource(); //获取事件源
    if(obj==next)  //输入下一个
    {
     jt.append(no.getText()+"  "+result.getText()+"\n");
     no.setText("");  //设置学号框内容为空
     result.setText("");//设置成绩框内容为空
     no.requestFocus();  //定位输入位置
    }
    else  //退出
    {
      System.exit(0);
    }  
  }
  /******实现了LeyListener接口方法********/
  public void keyPressed(KeyEvent e)  //键盘按下事件方法
  {
    Object obj=e.getSource(); //获得事件源
    if(e.getKeyCode()==10)  //是回车键
    { 
	 if(obj==no)  result.requestFocus(); //定位到result输入成绩
	 else if(obj==result)  //一个学生的信息输入完成 
	 { 
	  jt.append(no.getText()+"  "+result.getText()+"\n");
      no.setText("");  //设置学号框内容为空
      result.setText(""); //设置成绩框内容为空
      no.requestFocus();  //定位到no,开始下一个学生信息的输入
     }
    }
  }   
  /*----键盘键入事件-----*/
  public void keyTyped(KeyEvent e)
  {
    Object obj=e.getSource(); //获得事件源
    char c=e.getKeyChar();  //获得键入的字符
    if(c>=':'||c<='/'&&c>=' ') //非法字符拒绝进入文本框
    {
      Toolkit.getDefaultToolkit().beep();   //发出声响
      if(obj==no)  no.setEditable(false);	//不接收学号中输入的非法字符 
      if(obj==result) result.setEditable(false);//不接收成绩中输入的非法字符
    }
  }
  /*----按键释放事件----*/
  public void  keyReleased(KeyEvent e)
  {
	no.setEditable(true); //学号框中接受输入
	result.setEditable(true);//成绩框中接受输入
  } 
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -