Ho creato una griglia nel mio programma. Di seguito è riportato il codice utilizzato per creare la griglia.Creazione di una funzione di disegno di un rettangolo (riempito di colore nero) in Java per una griglia
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);
}
}
Quello che voglio fare è quello di creare una funzione che disegnare un rettangolo (pieno di colore nero) sulla base delle coordinate che mi danno. Fondamentalmente voglio popolare alcune celle della griglia con il colore nero e la mia idea è quella di disegnare rettangoli neri riempiti sulle coordinate della cella. Come faccio a fare questa funzione?
Ho provato a creare un'altra classe chiamata drawRectangle e l'ho richiamata nella funzione principale come window.getContentPane(). Add (new drawRectangle()); tuttavia ciò non ha funzionato (appare solo drawRectangle e non la griglia).
Voglio anche essere in grado di utilizzare questa funzione ripetutamente per continuare a creare rettangoli.
Come si crea questa funzione?
Anche se si conosce un modo migliore per strutturare questo programma, fatemelo sapere (sono nuovo di Java quindi sono aperto a qualsiasi suggerimento).
Questo potrebbe sembrare stupido ma w/e sono nuovo di Java. Come uso Graphics.fillRect (int, int.int, int)? In questo momento si vorrebbe usarlo: function drawRectangle (int x1, int y1, int x2, int y2) {Graphics.fillRect (int, int.int, int)} è possibile? Il programma aggiunge automaticamente il rettangolo al frame? –
No. 'fillRect' è un metodo di' Graphics', è necessario un riferimento al contesto 'Graphics'. Tutto il dipinto dovrebbe essere fatto nel contesto di un metodo 'paint' (preferibilmente' paintComponent'). Nella tua classe 'Grid' fornirei un metodo chiamato qualcosa come' fillGrid (int x, int y) 'che ti dice quale cella riempire. Nel tuo metodo 'paintComponent', determinerei quindi i limiti rettangolari di questa cella e riempio usando' fillRect' (ps ho aggiornato la risposta;)) – MadProgrammer
Ok quindi, solo per testare il fillRect ho aggiunto il public void paint (Grafica g , int x, int y) { \t g.fillRect (x, y, 10, 10); } nella classe Grid. Come uso questa funzione? –