java GUI(鼠標鍵盤事件)

/*
 * 
 */
import java.awt.*;
import java.awt.event.*;
public class MouseAndEvent {

private Frame f;
private Button but;
private TextField tf;
MouseAndEvent()
{
init();
}
//對圖形化界面進行初始化。
public void init()
{
f=new Frame("my frame");
//對frame進行基本設置,該方法包含setsize和setlocation.
f.setBounds(200,200,400,300);
f.setLayout(new FlowLayout());
//定義文本框對象,指定列數。
tf=new TextField(10);
but=new Button("my button");
//在顯示窗體之前,添加一個文本框。
f.add(tf);
//將組建添加到frame中
f.add(but);
//顯示窗體之前,加載一下窗體上的事件。
myEvent();
//顯示窗體
f.setVisible(true);
}
private void myEvent()
{
//爲窗體添加監聽器
f.addWindowListener(new WindowAdapter() {
public void windowClosing (WindowEvent e)
{
System.exit(0);
}
});
//爲按鈕添加活動事件。
but.addActionListener(new ActionListener() {


public void actionPerformed(ActionEvent e) {
System.out.println("action activity");

}
});
//爲按鈕添加鼠標事件。
but.addMouseListener(new MouseAdapter() {
//鼠標進入按鈕事件
int count=0;
int clikcount=0;
public void mouseEntered(MouseEvent e)
{
System.out.println("鼠標進入該組件"+count++);
}
public void mouseClicked(MouseEvent e)
{
//獲取鼠標點擊次數,實現雙擊
if(e.getClickCount()==2)
System.out.println("雙擊組件"+clikcount++);
}
});
//爲but添加鍵盤事件。
but.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
//KeyCode()打印鍵名,KeyChar()打印鍵所對應的碼。
//getKsyText根據鍵碼獲取鍵文本(String)。
//KeyEvent是類名。VK_ESCAPE是按鍵所對應的靜態常量。
if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)
//System.exit(0);
System.out.println("組合鍵運行");

//System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"---"+e.getKeyCode());
}
});
//給文本框添加鍵盤事件
tf.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e)
{
int code=e.getKeyCode();
//如果文本框輸入的不是0到9則顯示爲不合法數據,而且不會出現在文本 框中。
if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9))
{

System.out.println(code+"---不合法數據");
e.consume();
}
}
});
}
public static void main(String[] args) {
new MouseAndEvent();
}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章