Witam,
Mam mały problem odnośnie rysowania na panelu.
A więc tak mam stworzone 3 klasy pierwsza tworzy okno, w drugiej chcę dodać własną kontrolkę które stworzyłem w trzeciej klasie. Problem w tym ze dodając kontrolkę w drugiej klasie nie wyświetla mi jej, natomiast jak dodam ją w pierwszej klasie to wyświetla. Co robię nie tak?
public class Main extends JFrame{
Main(){
setSize(600,480);
setResizable(false);
setTitle("Java Gamae");
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(new Game());
}
public static void main(String[] args) {
Main window = new Main();
window.show();
}
}
public class Game extends JPanel{
public Game() {
start = new Button("START");
start.setComponentSize(100,50);
add(start);
repaint();
}
public Button start;
}
public class MyComponent extends JPanel {
protected int sizeX;
protected int sizeY;
protected int positionX;
protected int positionY;
protected boolean isClicked;
public void setComponentSize(int x, int y){ sizeX=x; sizeY=y;}
public void setComponentPosition(int x, int y){ positionX=x; positionY=y; }
}
class Button extends MyComponent implements MouseListener {
private String name;
Button(){
positionX=positionY=100;
sizeX=100; sizeY=20;
name="Button";
}
Button(String s){
positionX=positionY=100;
sizeX=100; sizeY=20;
name=s;
}
public void paintComponent (Graphics g){
super.paintComponent(g);
g.setColor(Color.DARK_GRAY);
g.fillRect(positionX, positionY, sizeX, sizeY);
g.setColor(Color.RED);
g.setFont(new Font("TimesRoman", Font.BOLD, 12));
g.drawString(name,positionX+sizeX/3,positionY+sizeY/2+4);
}
}