我需要帮助将网格绘制到 GUI 以及稍后让我更改绘制框的颜色的程序。我知道我将不得不使用paintComponent(Graphics g),但我不知道如何或在哪里。
所以这里是我到目前为止得到的代码的副本(尽管有人告诉我,仅仅获得代码可能会非常令人生畏,但我认为这是人们提供帮助的最佳方式,而不仅仅是为我做这件事)。从顶部开始,它设置值,创建 GUI,调用 GUI,用盒子填充二维数组(我认为)。然后在 Boxes 类中设置 box 类需要的值,然后开始如何绘制它们(不知道如何解决),然后是一些用于 x 和 y 坐标的 seta 方法。
我希望你做的是展示如何将框绘制到 Jpanel,制作一个网格,然后向我展示如何根据外部值将颜色更改为不同的蓝色阴影。
import java.awt.*;
import java.awt.Graphics;
import java.util.*;
import javax.swing.*;
public class NewGrid {
Boxes[][] Boxs;
int BoxesX;
int BoxesY;
NewGrid() {
buildtheGUI();
}
JFrame frame = new JFrame();
JPanel panel = new JPanel();
public void buildtheGUI() {
frame.setSize(500, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(panel);
frame.setVisible(true);
}
public static void main(String[] args) {
new NewGrid();
}
public void addboxes() {
Boxs = new Boxes[panel.getWidth() / 10][panel.getHeight() / 10];
for (int i = 0; i < panel.getWidth() / 10; i++) {
for (int j = 0; j < panel.getHeight() / 10; j++) {
Boxs[i][j] = new Boxes();
Boxs[i][j].setx(i * (panel.getWidth() / 10));
Boxs[i][j].sety(j * (panel.getHeight() / 10));
Boxs[i][j].draw(null);
}
}
}
}
public class Boxes extends JPanel {
int x;
int y;
int width = 10;
int hieight = 10;
Color colour = Color.BLACK;
public void draw(Graphics g) {
g.setColor(colour);
g.fillRect(x, y, width, hieight);
}
public void setx(int i ){
x = i;
}
public void sety(int i ){
y = i;
}
}