[Swing] Umieszczanie elementu w dowolnym miejscu JPanelu

0

proszę o pomoc, ponieważ nie mogę narysować nawet głupiego prostokąta :/

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

class Komp extends Canvas {   

  public void paint(Graphics g) {
    this.setBackground(Color.black);
  
    Dimension d = this.getSize();
    g.setColor(Color.red);
    g.drawRect(100, 200, d.width, d.height);

    //g.fillRect(100, 200, d.width, d.height);
    
  }
  
  public Dimension getMinimumSize() {
    return new Dimension(50, 80);  
  }

  public Dimension getPreferredSize() {
    return new Dimension(50, 80);  
  }

  public Dimension getMaximumSize() {
    return new Dimension(50, 80);  
  }  

}

chciałbym aby prostokąt tej klasy był rysowany w dowolnym miejscu na JPanelu (później podmienię sobie te liczby 100, 200), ale na chwilę obecną nic mi się nie wyświetla. gdzie tkwi mój błąd??

z góry dzięki za pomoc

0

1)Masz jakiś JPanel ?
2)Czy jego metoda została zmodyfikowana ?
np tak :

public void paint(Graphics g)
{
   jakisKomp.paint(g);
}
0

mam JPanel o nazwie schemat, nie przesłaniałem (tak to się chyba nazywa;)) metody paintComponent().

moja koncepcja jest taka, że po kliknięciu w przycisk o nazwie ok tworzony jest obiekt właśnie tej klasy komputer - chodzi tylko o to, aby mógł się pojawiać w dowolnym miejscu tego JPanelu:

 public void actionPerformed(ActionEvent evt) {
        schemat.add(new Komputer());
         
        schemat.revalidate();
    }

pewne "próby" częściowo się udały, ale rysunek pojawia się zawsze tuż przy górnej krawędzi panelu, zawsze na środku (czasami pojawia się nie wiadomo skąd mały kwadracik [???] ). Czy ktoś spotkał się z podobnym problemem i wie jak go rozwiązać?

1 użytkowników online, w tym zalogowanych: 0, gości: 1