Re: JPanel Background problem....
TheBigPJ wrote:
My code compiles fine, however it doesn't do as its told to put it
lightly.
I would venture that it is doing *exactly* what it is being told to do, but
rather the programmer is not telling it to do what they want it to do.
I'm attempting to set the "JPanel Pork" to be yellow initially. Then
change it via JButtons later.
What am I doing wrong? It wont initially set to yellow.
-------------------------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Initial_Displaying extends JFrame
{
private The_Meat Pork;
public Initial_Displaying()
{
Pork = new The_Meat();
}
public void initComponents() throws Exception {
Pork.setBackground(Color.yellow); // It doesnt set it to
yellow :(
JPanel content = new JPanel();
content.setLayout(new BorderLayout(5, 5));
content.add(Pork, BorderLayout.WEST);
setContentPane(content);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Initial Displaying");
setLocationRelativeTo(null); // Center window.
pack();
setVisible(true);
}
static public void main(String[] args) { // Main
entry point
try {
Initial_Displaying Test = new Initial_Displaying();
Test.initComponents();
}
catch (Exception e) {
e.printStackTrace();
}
}
}
----------------------------------
import java.awt.*;
import javax.swing.*;
import java.awt.Graphics;
import java.awt.Graphics2D;
public class The_Meat extends JPanel
{
private Color BackGroundColour;
public The_Meat()
{
setPreferredSize(new Dimension(250,250));
}
public void paintComponent(Graphics g){
paintComponent((Graphics2D) g);
}//paintComponent
public void paintComponent(Graphics2D g){
super.paintComponent();
g.drawLine(50,50,50,150);
g.drawLine(50,100,100,100);
...
The first thing paintComponent should do is invoke the parent's paintComponent
so that it performs all the inherited "housekeeping" tasks which would normally
be performed. This includes nice features like drawing the background.
http://java.sun.com/docs/books/tutorial/uiswing/painting/index.html
--
Nigel Wade, System Administrator, Space Plasma Physics Group,
University of Leicester, Leicester, LE1 7RH, UK
E-mail : nmw@ion.le.ac.uk
Phone : +44 (0)116 2523548, Fax : +44 (0)116 2523555