Ne ideas on why this snippet fails to when I click on any of the buttons?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TwoButtons {
JFrame frame;
JLabel label;
public static void main (
String [] args ) {
TwoButtons gui = new TwoButtons();
gui.go();
}
public void go () {
JFrame frame = new JFrame();
JButton labelButton = new JButton( "change label" );
labelButton.addActionListener( new LabelListener() );
JButton colorButton = new JButton( "change colours" );
colorButton.addActionListener( new ColorListener() );
JLabel label = new JLabel( "I am a label" );
MyDrawPanel drawPanel = new MyDrawPanel();
frame.getContentPane().add( BorderLayout.SOUTH, colorButton );
frame.getContentPane().add( BorderLayout.EAST, labelButton );
frame.getContentPane().add( BorderLayout.CENTER, drawPanel );
frame.getContentPane().add( BorderLayout.WEST, label );
frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
frame.setSize( 420, 300 );
frame.setVisible( true );
}
class LabelListener implements ActionListener {
public void actionPerformed( ActionEvent event ) {
label.setText("Ouch" );
}
}
class ColorListener implements ActionListener {
public void actionPerformed( ActionEvent event ) {
frame.repaint();
}
}
}
class MyDrawPanel extends JPanel {
public void paintComponent( Graphics g ) {
g.fillRect(0,0,this.getWidth(), this.getHeight());
// make random colors to fill with
int red = (int) (Math.random() * 255);
int green = (int) (Math.random() * 255);
int blue = (int) (Math.random() * 255);
Color randomColor = new Color(red, green, blue);
g.setColor(randomColor);
g.fillOval(70,70,100,100);
}
}
I am getting a NullPointerException