FileDocCategorySizeDatePackage
HelloJava4.javaAPI DocExample2248Mon May 01 14:41:38 BST 2000None

HelloJava4

public class HelloJava4 extends JComponent implements ActionListener, Runnable, MouseMotionListener

Fields Summary
int
messageX
int
messageY
String
theMessage
JButton
theButton
int
colorIndex
static Color[]
someColors
boolean
blinkState
Constructors Summary
public HelloJava4(String message)


     
    theMessage = message;
    theButton = new JButton("Change Color");
    setLayout(new FlowLayout(  ));
    add(theButton);
    theButton.addActionListener(this);
    addMouseMotionListener(this);
    Thread t = new Thread(this);
    t.start(  );
  
Methods Summary
public voidactionPerformed(java.awt.event.ActionEvent e)

    // Did somebody push our button?
    if (e.getSource(  ) == theButton)
      changeColor(  );
  
private synchronized voidchangeColor()

    // Change the index to the next color.
    if (++colorIndex == someColors.length)
      colorIndex = 0;
    setForeground(currentColor(  )); // Use the new color.
    repaint(  ); // Paint again so we can see the change.
  
private synchronized java.awt.ColorcurrentColor()

    return someColors[colorIndex];
  
public static voidmain(java.lang.String[] args)

    JFrame f = new JFrame("HelloJava4");
    // Make the application exit when the window is closed.
    f.addWindowListener(new WindowAdapter(  ) {
      public void windowClosing(WindowEvent we) { System.exit(0); }
    });
    f.setSize(300, 300);
    f.getContentPane(  ).add(new HelloJava4("Hello, Java!"));
    f.setVisible(true);
  
public voidmouseDragged(java.awt.event.MouseEvent e)

    messageX = e.getX(  );
    messageY = e.getY(  );
    repaint(  );
  
public voidmouseMoved(java.awt.event.MouseEvent e)

public voidpaintComponent(java.awt.Graphics g)

    g.setColor(blinkState ? getBackground() : currentColor(  ));
    g.drawString(theMessage, messageX, messageY);
  
public voidrun()

    try {
      while(true) {
        blinkState = !blinkState; // Toggle blinkState.
        repaint(  ); // Show the change.
        Thread.sleep(500);
      }
    }
    catch (InterruptedException ie) {}