?? keyexam.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 + -