La création d'un dessine un rectangle rempli avec la couleur noire) fonction en Java pour une grille
J'ai créé une grille dans mon programme. Ci-dessous est le code utilisé pour créer la grille.
import java.awt.Graphics;
import javax.swing.JComponent;
import javax.swing.JFrame;
class Grid extends JComponent {
public void paint(Graphics g) {
g.drawRect (10, 10, 800, 500);
for (int i = 10; i <= 800; i+= 10)
g.drawLine (i, 10, i, 510);
for (int i = 10; i <= 500; i+= 10)
g.drawLine (10, i, 810, i);
}
}
public class CoreControl {
public static void main(String[] a) {
JFrame window = new JFrame();
window.setSize(840,560);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.getContentPane().add(new Grid());
window.setVisible(true);
}
}
Ce que je veux faire est de créer une fonction qui dessine un rectangle rempli avec la couleur noire) en fonction des coordonnées que je lui donne. Fondamentalement, je veux remplir certaines cellules de la grille avec la couleur noire et mon idée est de dessiner noir de rectangles pleins sur les coordonnées des cellules. Comment puis-je faire de cette fonction?
J'ai essayé de faire une autre classe appelée méthode drawrectangle et dans la principale fonction de la façon de la fenêtre.getContentPane().ajouter(nouvelle méthode drawrectangle()); toutefois, cela ne fonctionne pas (seule méthode drawrectangle montre et pas de la grille).
Je veux aussi être en mesure d'utiliser cette fonction à plusieurs reprises pour créer des rectangles.
Comment dois-je faire créer cette fonction?
D'ailleurs si vous connaissez un meilleur moyen que je devrais structure de ce programme, s'il vous plaît laissez-moi savoir (je suis nouveau sur le Java donc je suis ouvert à toutes suggestions).
OriginalL'auteur Veda Sadhak | 2013-04-08
Vous devez vous connecter pour publier un commentaire.
paint
, utilisezpaintComponent
et n'oubliez pas d'appelersuper.paintComponent
JComponent
peut-être pas le meilleur choix,JPanel
est probablement un meilleur choixcarte Graphique#fillRect(int, int, int, int)
?Vous pouvez prendre un coup d'oeil à Exécution De La Peinture Custom et Graphismes en 2D pour plus de détails.
J'avais des conseils à l'encontre d'essayer d'avoir un deuxième composant pour effectuer le remplissage. Simplement fournir une méthode en vous la classe de la grille que l'approvisionnement de la cellule de position x/y (dans la grille) et remplir la cellule à l'intérieur de la
paintComponent
méthodeMis à jour avec exemple
Pas de.
fillRect
est une méthode deGraphics
, vous avez besoin d'une référence à laGraphics
contexte. Tous les travaux de peinture doit être fait dans le contexte d'unepaint
méthode (de préférencepaintComponent
). Dans votreGrid
classe, je voudrais indiquer méthode appelé quelque chose commefillGrid(int x, int y)
qui vous dit ce que la cellule à remplir. Dans votrepaintComponent
méthode, que je ne puis déterminer le rectangle limites de cette cellule et de le remplir à l'aide defillRect
(ps j'ai mis à jour la réponse ;))Ok, donc juste pour tester le fillRect j'ai ajouté public void paint(Graphics g, int x, int y) { g.fillRect(x, y, 10, 10); } dans la Classe de la Grille. Comment puis-je utiliser cette fonction?
Vérifier les mises à jour exemple
Génial. Merci, j'ai vraiment l'apprécier.
OriginalL'auteur