把你的代碼按照你的意思改動(dòng)了一下,應(yīng)該可以滿(mǎn)足你的要求:

創(chuàng)新互聯(lián)專(zhuān)注于網(wǎng)站設(shè)計(jì)制作、成都做網(wǎng)站、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)。公司秉持“客戶(hù)至上,用心服務(wù)”的宗旨,從客戶(hù)的利益和觀點(diǎn)出發(fā),讓客戶(hù)在網(wǎng)絡(luò)營(yíng)銷(xiāo)中找到自己的駐足之地。尊重和關(guān)懷每一位客戶(hù),用嚴(yán)謹(jǐn)?shù)膽B(tài)度對(duì)待客戶(hù),用專(zhuān)業(yè)的服務(wù)創(chuàng)造價(jià)值,成為客戶(hù)值得信賴(lài)的朋友,為客戶(hù)解除后顧之憂(yōu)。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class KeyEventDemo extends JFrame implements ActionListener, KeyListener {
JTextField txt1;
JButton btnOK;
JPanel pnlMain;
public KeyEventDemo() {
pnlMain = new JPanel();
setContentPane(pnlMain);
txt1 = new JTextField(10);
btnOK = new JButton("確認(rèn)");
txt1.addKeyListener(this); //應(yīng)該是在 TextField 里添加鍵盤(pán)監(jiān)聽(tīng)事件
btnOK.addActionListener(this);//在按鈕上添加事件監(jiān)聽(tīng)
pnlMain.setLayout(new BorderLayout());//添加布局器
pnlMain.add(txt1,BorderLayout.NORTH); //TextField 布局在上方
pnlMain.add(btnOK,BorderLayout.SOUTH); //Button 布局在下方
setTitle("好啊");
setSize(300, 200);
setVisible(true);//viersible() 函數(shù)應(yīng)該放在最后
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public void keyTyped(KeyEvent e) { //6
char c = e.getKeyChar();
if (c == 'o') {
System.out.println("快捷鍵 " + e.getKeyChar() + " 按下" );
txt1.setText("收到,呵呵");
}else{
System.out.println("普通鍵 " + e.getKeyChar() + " 按下" );
}
}
public void actionPerformed(ActionEvent event){
System.out.println("按鈕按下");
}
public void keyPressed(KeyEvent e) {} //函數(shù)要和接口 KeyListener 中定義的一摸一樣
public void keyReleased(KeyEvent e) {} //函數(shù)要和接口 KeyListener 中定義的一摸一樣
public static void main(String[] args) {
new KeyEventDemo();
}
}
額,抽象類(lèi)其實(shí)就是定義了一些接口但又沒(méi)有去實(shí)現(xiàn)的類(lèi),這些類(lèi)定義了接口等它的子類(lèi)來(lái)實(shí)現(xiàn),如果它的子類(lèi)沒(méi)有實(shí)現(xiàn)這些接口,那么這些子類(lèi)也是抽象類(lèi)。抽象類(lèi)是不能用 new 的方式產(chǎn)生的。
你似乎問(wèn)錯(cuò)了,應(yīng)該問(wèn)接口是啥子?xùn)|西,接口是。。。。一大堆的東西好難策清楚,看看下面的鏈接吧,會(huì)受益良多的:
public?class?BtnText1?extends??JFrame?implements?MouseMotionListener
不需要實(shí)現(xiàn)MouseMotionListener接口,你已經(jīng)用了addMouseMotionListener方法
MouseAdapter類(lèi)已經(jīng)是實(shí)現(xiàn)了MouseMotionListener接口的。
改成
public?class?BtnText1?extends??JFrame
可以運(yùn)行成功
java 自定義監(jiān)聽(tīng)器監(jiān)聽(tīng)屬性變化
import java.util.EventObject;
public class MyEvent extends EventObject
{
private Object obj;
private String sName;
public MyEvent(Object source,String sName)
{
super(source);
this.obj=source;
this.sName=sName;
}
public Object getObj()
{
return obj;
}
public String getsName()
{
return sName;
}
}
import java.util.EventListener;
public interface MyEventListener extends EventListener
{
public void handleEvent (MyEvent me);
}
import java.util.Iterator;
import java.util.Vector;
import demo.DemoEvent;
public class MyEventSource
{
private Vector list=new Vector();
private String sName = "";
public MyEventSource()
{
super();
}
public void addMyEventListener(MyEventListener me)
{
list.add(me);
}
public void deleteMyEventListener(MyEventListener me)
{
list.remove(me);
}
public void notifyMyEvent(MyEvent me)
{
Iterator it=list.iterator();
while(it.hasNext())
{
((MyEventListener) it.next()).handleEvent(me);
}
}
public void setName(String str)
{
boolean bool = false;
if (str == null sName != null)
bool = true;
else if (str != null sName == null)
bool = true;
else if (!sName.equals(str))
bool = true;
this.sName = str;
// 如果改變則執(zhí)行事件
if (bool)
notifyMyEvent(new MyEvent(this, sName));
}
public String getsName()
{
return sName;
}
}
public class Test implements MyEventListener
{
public Test()
{
MyEventSource mes = new MyEventSource();
mes.addMyEventListener(this);
mes.setName("niu");
}
public static void main(String args[])
{
new Test();
}
public void handleEvent(MyEvent me)
{
System.out.println(me.getSource());
System.out.println(me.getsName());
}
}
把下面兩個(gè)類(lèi)去了,直接用匿名內(nèi)部類(lèi)來(lái)實(shí)現(xiàn)...
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.out.print(jt.getText());
}
});
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
jt.setText("");
DoubleColorBall dbcb = new DoubleColorBall();
try {
// 根據(jù)文本框里輸入的數(shù)字,調(diào)用DoubleColorBall中的方法生成彩票
String[] num = dbcb.getNumber(Integer
.parseInt(jf.getText()));
for (int i = 0; i num.length; i++) {
jt.append(num[i] + "\n");
}
} catch (Exception e) {
e.printStackTrace();
jt.setText("請(qǐng)輸入正整數(shù)數(shù)字");
}
}
});
本文標(biāo)題:java監(jiān)聽(tīng)事件代碼 java事件
URL地址:http://chinadenli.net/article20/ddgsgjo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、網(wǎng)站營(yíng)銷(xiāo)、手機(jī)網(wǎng)站建設(shè)、微信公眾號(hào)、網(wǎng)站制作、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)