GeeCON Prague 2014*
The moose likes Swing / AWT / SWT and the fly likes need help with my code Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "need help with my code" Watch "need help with my code" New topic
Author

need help with my code

barbara rocha
Greenhorn

Joined: Aug 08, 2007
Posts: 1
Hi.. I'm trying to do a Frame with this draw that changes it's color each time I click the button... but it's not working ... can someone help me?

Here is the code.. ( only the button shows up in the screen).

public class MyDrawPanel extends JPanel {

public void paintComponet(Graphics g) {

g.fillRect(0, 0, this.getWidth(), this.getHeight());

int red = (int)(Math.random()*255);
int green = (int)(Math.random()*255);
int blue = (int)(Math.random()*255);
Color randomColor = new Color(red,blue,green);
g.setColor(randomColor);
g.fillOval(70,70,100,100);

}

}
_______________________________
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
*
* @author babi rocha
*/
public class SimpleGui3C extends JFrame implements ActionListener {

JFrame frame;

public static void main (String[] args) {
SimpleGui3C gui = new SimpleGui3C();
gui.go();
}

public void go() {
frame = new JFrame();

frame.setLayout(new GridLayout(2, 2));

JButton button = new JButton("Change colors!");
button.addActionListener(this);

MyDrawPanel drawPanel = new MyDrawPanel();

frame.getContentPane().add(BorderLayout.SOUTH, button);
frame.getContentPane().add(BorderLayout.CENTER, drawPanel);
frame.setSize(300, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(200,200);
frame.pack();

}

public void actionPerformed(ActionEvent e) {
frame.repaint();
}
}
Ulf Dittmer
Marshal

Joined: Mar 22, 2005
Posts: 42053
    
  64
Welcome to JavaRanch.

paintComponet


That's your problem - the method name is missing an "n". You may want to get in the habit of using the @Override annotation to avoid this kind of mistake.


Ping & DNS - my free Android networking tools app
Nathan Pruett
Bartender

Joined: Oct 18, 2000
Posts: 4121



You just misspelled paintComponent

Also, the packed frame isn't large enough for the circle to show up without resizing the frame. You may want to set the frame size specifically to a larger size and leave off the pack() call, or set the minimum and preferred size of the MyDrawPanel to a value that will take the size and location of the circle into account.


-Nate
Write once, run anywhere, because there's nowhere to hide! - /. A.C.
 
GeeCON Prague 2014
 
subject: need help with my code