import java.awt.*;import java.awt.event.*;import javax.swing.*;public class HelloWorld3 { public static void main(String[] args){ JFrame frame = new JFrame(" HelloWorld3 "); frame.add(new HelloComponent3("Hellow")); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(300,300); frame.setVisible(true); }}class HelloComponent3 extends JComponent? implements MouseMotionListener,ActionListener? { String theMessage; int messageX=125,messageY=95; JButton theButton; int colorIndex; static Color[] someColors={Color.black,Color.red,Color.green,Color.blue,Color.magenta}; public HelloComponent3(String message){ theMessage=message; theButton=new JButton("change message"); setLayout(new FlowLayout()); add(theButton); theButton.addActionListener(this); addMouseMotionListener(this); } public void painComponent(Graphics g){ g.drawString(theMessage, messageX, messageY); } public void mouseDragged(MouseEvent e){ messageX=e.getX(); messageY=e.getY(); repaint(); } public void mouseMoved(MouseEvent e){} ? ? public void actionperformed(ActionEvent e){? ? if(e.getSource()== theButton)? ? changeColor();? ? }? ??? ? synchronized private void changeColor(){? ? if(++colorIndex==someColors.length)? ? colorIndex=0;? ? setForeground(currentColor());? ? repaint();? ? }? ??? ? synchronized private Color currentColor(){? ? return someColors[colorIndex];? ? } public void actionPerformed(ActionEvent e) { }? }
添加回答
舉報(bào)
0/150
提交
取消