Custom JComponent not displaying in Custom JPanel

Posted by Trizicus on Stack Overflow See other posts from Stack Overflow or by Trizicus
Published on 2010-03-13T21:58:57Z Indexed on 2010/03/13 22:05 UTC
Read the original article Hit count: 812

Filed under:
|
|
|

I've tried the add() method but nothing is displayed when I try to add Test to GraphicsTest. How should I be adding it? Can someone show me? I've included the code I'm using.

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JComponent;

public class Test extends JComponent

{
    Test()
    {
        setOpaque(false);
    setBackground(Color.white);
}

@Override
public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    Graphics2D g2d = (Graphics2D) g.create();

    g2d.setColor(Color.red);
    g2d.drawString("Hello", 50, 50);
    g2d.dispose();
}

}

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.geom.Rectangle2D;
import javax.swing.JPanel;

public class GraphicsTest extends JPanel implements MouseListener
{
private Graphics2D g2d;
private String state;
private int x, y;

GraphicsTest()
{
    add(new Test());
}

@Override
public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    g2d = (Graphics2D) g;

    g2d.setColor(Color.BLACK);
    g2d.drawString("STATE: " + state, 5, 15);
    g2d.drawString("Mouse Position: " + x + ", " + y, 5, 30);

    g2d.setColor(Color.red);
    Rectangle2D r2d = new Rectangle2D.Double(x, y, 10, 10);
    g2d.draw(r2d);

    g2d.dispose();
}

public void setState(String state) { this.state = state; }
public String getState() { return state; }

public void setX(int x) { this.x = x; repaint(); }
public void setY(int y) { this.y = y; repaint(); }

public void mouseClicked(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}

}

© Stack Overflow or respective owner

Related posts about custom

Related posts about jpanel