У меня проблемы с тем, что, вероятно, очень простая проблема в Java. Я написал следующую программу, которая отображает цветовую матрицу квадратов 10х10, цвета которой генерируются случайным образом и изменяются случайным образом при нажатии пользователем в окне. Однако, если бы я хотел изменить эти квадраты, например, на прямоугольники или любую другую форму, как я мог бы это сделать? Возможно ли это, учитывая текущий код, который у меня есть? Большое спасибо за любую помощь - извините за плохой отступ кода!
import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class ColorGrid extends JLabel {
private static final int n = 10;
private static final Random random = new Random();
public ColorGrid() {
this.setOpaque(true);
this.setBackground(new Color(random.nextInt()));
this.setPreferredSize(new Dimension(50, 50));
}
private void GridOutput() {
JFrame f = new JFrame("ColorGrid Display Window");
f.setLayout(new GridLayout(n, n));
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
for (int i = 0; i < n * n; i++) {
final ColorGrid label = new ColorGrid();
label.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
label.setBackground(new Color(random.nextInt()));
}
});
f.add(label);
}
f.pack();
f.setLocationRelativeTo(null);
f.setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
new ColorGrid().GridOutput();
}
});
}
}