Как мне разбить графику графического интерфейса Java на группы, чтобы я мог создать шестигранный кубик?
Я создаю графический интерфейс Java, который будет показывать случайное лицо шестигранного кубика. Я нарисовал все нужные мне точки (верхнюю, среднюю и нижнюю левую / правую, а также центральную точку), и все они появляются в моем графическом интерфейсе, но теперь мне нужно разбить их на грани, например, 1-грань будет содержать только центральную точку Я указал, какое лицо будет использовать какую графику в моем коде в качестве комментариев в моем paintComponent(Graphics g)
метод.
Как бы я это реализовал? Вот мой код:
package weekThree;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.*;
@SuppressWarnings("serial")
public class Die extends JPanel {
private Color circleColor = Color.BLACK;
private int circX = 75;
private int circY = circX;
private int circW = 75;
private int circH = circW;
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2.setColor(circleColor);
g2.fillOval(circX, circY, circW, circH);
g2.setColor(circleColor);
g2.drawOval(circX, circY, circW, circH);
Graphics2D g3 = (Graphics2D) g;
g3.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g3.setColor(circleColor);
g3.fillOval(600, circY, circW, circH);
g3.setColor(circleColor);
g3.drawOval(600, circY, circW, circH);
Graphics2D g4 = (Graphics2D) g;
g4.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g4.setColor(circleColor);
g4.fillOval(600, 325, circW, circH);
g4.setColor(circleColor);
g4.drawOval(600, 325, circW, circH);
Graphics2D g5 = (Graphics2D) g;
g5.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g5.setColor(circleColor);
g5.fillOval(600, 600, circW, circH);
g5.setColor(circleColor);
g5.drawOval(600, 600, circW, circH);
Graphics2D g6 = (Graphics2D) g;
g6.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g6.setColor(circleColor);
g6.fillOval(circX, 325, circW, circH);
g6.setColor(circleColor);
g6.drawOval(circX, 325, circW, circH);
Graphics2D g7 = (Graphics2D) g;
g7.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g7.setColor(circleColor);
g7.fillOval(circX, 600, circW, circH);
g7.setColor(circleColor);
g7.drawOval(circX, 600, circW, circH);
Graphics2D g8 = (Graphics2D) g;
g8.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g8.setColor(circleColor);
g8.fillOval(325, 325, circW, circH);
g8.setColor(circleColor);
g8.drawOval(325, 325, circW, circH);
//1 = g8
//2 = g2, g5
//3 = g7, g3, g8
//4 = g2, g3, g7, g5
//5 = g2, g3, g8, g7, g5
//6 = g2, g3, g4, g5, g6, g7
}
private static void createAndShowGui() {
JFrame frame = new JFrame("Die Roller");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(new Die());
JButton b1 = new JButton("Roll");
frame.setSize(800, 800);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
Спасибо