import java.awt.*;import java.awt.event.*;import javax.swing.*;
public class HelloJava3 extends JComponent implements MouseMotionListener,ActionListener{ int mx=145,my=79; // initial x,y 的坐标 String theMe;// message JButton theButton;
//create someColors arry[] int colorIndex; static Color[] someColors={ Color.black,Color.blue,Color.cyan,Color.darkGray,Color.darkGray,Color.green, Color.orange };
public HelloJava3(String message){ theButton=new JButton("Change Color"); theMe =message; setLayout(new FlowLayout()); add(theButton); theButton.addActionListener(this); addMouseMotionListener(this);
}
public void paintComponent(Graphics g){ g.drawString("Happy new year",125,100); g.drawString("fill",125,95); g.drawString(theMe,mx,my);
}
public void mouseDragged(MouseEvent e){ mx=e.getX(); my=e.getY(); repaint();
}
public void mouseMoved(MouseEvent e){ //这里没有代码表示可以忽略这个方法 }
public void actionPerformed(MouseEvent e){ if (e.getSource()==theButton) changeColor();
} // 第一次用sychronized
synchronized private void changeColor(){ //递增索引 if (++colorIndex==someColors.length) colorIndex=0; setForeground(currentColor()); repaint();
}
synchronized private Color currentColor(){ return someColors[colorIndex];
} public static void main (String[] args) { JFrame f=new JFrame("HelloJava3"); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ System.exit(0); } }); f.setSize(250,250); f.getContentPane().add(new HelloJava3("Hello !Java")); f.setLocation(500,500); f.setVisible(true);
}
}
/*E:/Java/jkk/HelloJava3.java:5: HelloJava3 不是抽象的,并且未覆盖 java.awt.event.ActionListener 中的抽象方法 actionPerformed(java.awt.event.ActionEvent)public class HelloJava3*/
//我写的程序为什么编译时会出现这个问题?求助!!!!