Je sais que je suis un idiot et c'est pourquoi je ne peux pas le comprendre mais j'essaye de peindre un groupe de rectangles avec la taille et la position de randoms using le composant de peinture. J'essaie de m'assurer que tous sont peints dans le cadre. Je suis capable de le faire avec le code suivant (extrait) mais je me demande s'il y a une meilleure façon de le faire que des numéros en dur dans le programme. Y at-il une méthode que je devrais jeter un coup d'oeil à ce qui pourrait être ce que je cherche?Garder le rectangle dans JFrame
est ici la classe intérieure qui remplace la méthode paintComponent():
class DrawPanel extends JPanel {
public void paintComponent(Graphics g) {
int red = (int)(Math.random()*256);
int blue = (int)(Math.random()*256);
int green = (int)(Math.random()*256);
g.setColor(new Color(red, blue, green));
//The following 4 lines keep the rects within the frame
//The frame is 500,500
int ht = (int)(Math.random()*400);
int wd = (int)(Math.random()*400);
int x = (int)(Math.random()*100);
int y = (int)(Math.random()*100);
g.fillRect(x,y,ht,wd);
}
}
Quels problèmes rencontrez-vous? Etes-vous sûr que vous voulez randomiser dans 'paintComponent (...)', de sorte que chaque fois que le GUI est repeint pour une raison quelconque, les rectangles vont changer. Et êtes-vous sûr que vous ne voulez pas appeler la méthode 'super.paintComponent (...)'? –
De même, ne devriez-vous pas utiliser 'getSize()' du DrawPanel et ne pas utiliser la taille de JFrame? Sinon, vous ignorez sa barre de titre, etc ... –
Voir les exemples connexes [ici] (http://stackoverflow.com/q/9849950/230513). – trashgod