class MyMouseListener extends MouseAdapter{
private int step; //决定Button上的标号每次增加的步长
public MyMouseListener(int step){this.step=step;}
public void mousePressed(MouseEvent evt){
EventObject e = (EventObject)evt; //显示无法Cast的错误,但是MouseEvent明明就是EventObject的子类?
Button button=(Button)evt.getSource(); //显示evt没有getSource这个方法,该方法不是从EventObject继承的嘛?
int count=Integer.parseInt(button.getLabel());
button.setLabel(new Integer(step+count).toString()); //把Button上的标号加step
}
}上面这些问题让我很是头痛啊
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;class Test32 extends JFrame implements MouseListener {
JButton bt = new JButton("Step");
int step=1;
public Test32() {
super();
this.setSize(100, 100);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
bt.setText("Step"+step);
bt.addMouseListener(this);
this.add(bt);
}
public static void main(String[] args) {
new Test32();
} public void mouseClicked(MouseEvent e) {
} public void mouseEntered(MouseEvent e) {
} public void mouseExited(MouseEvent e) {
} public void mousePressed(MouseEvent e) {
step++;
bt.setText("Step"+step);
} public void mouseReleased(MouseEvent e) {
}
}
Button button=(Button)evt.getSource(); //显示evt没有getSource这个方法,该方法不是从EventObject继承的嘛?
看到没有你把下面的evt下错了,应该是e才对。自己在看看。
package MyEvent;import java.awt.event.*;
import java.awt.*;
import java.util.EventObject;public class AdapterCounter extends Frame{
private Button button=new Button("1"); public AdapterCounter(String title){
super(title);
//把MyMouseListener的实例注册为Button的监听器
button.addMouseListener(new MyMouseListener(2));
add(button);
setSize(100,100);
setVisible(true);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
} public static void main(String args[]){
new AdapterCounter("hello");
}
}class MyMouseListener extends MouseAdapter{
private int step; //决定Button上的标号每次增加的步长
public MyMouseListener(int step){this.step=step;}
public void mousePressed(MouseEvent e){
EventObject evt = (EventObject)e;
Button button=(Button)evt.getSource();
int count=Integer.parseInt(button.getLabel());
button.setLabel(new Integer(step+count).toString()); //把Button上的标号加step
}
}
语言特性就是这么着,没办法。
我最初看到IBM出的那些代码都非常长,就很奇怪,后来知道人家早就建议不用包import。更有甚者,import都用得少,直接写冗长的类名到代码中去。大工不巧啊。