Я создал сетку в своей программе. Ниже приведен код, используемый для создания сетки.Создание прямоугольника draw (заполнено черным цветом) в Java для сетки
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);
}
}
То, что я хочу сделать, это создать функцию, которая будет рисовать прямоугольник (заполненный черным цветом) на основе координат, которые я даю его. В основном я хочу заполнить определенные ячейки сетки черным цветом, и моя идея - нарисовать черные заполненные прямоугольники на координатах ячейки. Как это сделать?
Я попытался сделать еще один класс под названием drawRectangle и назвал его основной функцией, например window.getContentPane(). Add (new drawRectangle()); однако это не сработало (отображается только drawRectangle, а не сетка).
Я также хочу, чтобы иметь возможность использовать эту функцию несколько раз, чтобы создавать прямоугольники.
Как мне создать эту функцию?
Также, если вы знаете лучший способ, которым я должен структурировать эту программу, пожалуйста, дайте мне знать (я новичок в Java, поэтому я открыт для любых предложений).
Этих может показаться глупым, но w/e я новичок в Java. Как использовать Graphics.fillRect (int, int.int, int)? Прямо сейчас, как это хотелось бы использовать: function drawRectangle (int x1, int y1, int x2, int y2) {Graphics.fillRect (int, int.int, int)} это возможно? Автоматически добавляет ли программа прямоугольник в рамку? –
№ 'fillRect' - это метод' Graphics', вам нужна ссылка на контекст «Graphics». Вся окраска должна выполняться в контексте метода «paint» (желательно «paintComponent»). В вашем классе «Grid» я бы предложил метод, называемый «fillGrid (int x, int y)», который сообщает вам, какую ячейку заполнить. В вашем методе 'paintComponent' я тогда определял бы границы прямоугольника этой ячейки и заполнял бы с помощью' fillRect' (ps я обновил ответ;)) – MadProgrammer
Итак, просто чтобы проверить fillRect, я добавил публичную краску void (Graphics g , int x, int y) { \t g.fillRect (x, y, 10, 10); } в классе Grid. Как использовать эту функцию? –