자바에서 육각형 그리기
이 기사는 Java 프로그래밍에서 육각형을 그리는 방법을 보여줍니다. 화면에 도형을 그리는 배열과 객체에 대해 알아보겠습니다.
Java에서 배열을 사용하여 육각형 그리기
예제 코드(hexagon.java
):
import java.awt.Dimension;
import java.awt.Graphics;
import javax.swing.JPanel;
public class hexagon extends JPanel {
public hexagon() {
setPreferredSize(new Dimension(500, 500));
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
int[] xPoints = {200, 300, 350, 300, 200, 150};
int[] yPoints = {350, 350, 250, 150, 150, 250};
g.fillPolygon(xPoints, yPoints, xPoints.length);
}
}
예제 코드(drawHexagon.java
):
import javax.swing.JFrame;
public class drawHexagon {
public static void main(String[] args) {
JFrame frame = new JFrame("Draw Hexagon");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new hexagon());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
출력:
이 코드 예제에는 main
기능이 있는 hexagon.java
및 drawHexagon.java
라는 두 개의 클래스가 있습니다. hexagon.java
는 paintComponent()
라는 메서드를 재정의하기 때문에 JPanel
클래스를 확장합니다.
java.swing
패키지 클래스 중 JPanel
은 다양한 구성 요소를 저장하는 컨테이너와 같습니다.
주요 작업은 다양한 구성 요소와 레이아웃을 구성하는 것입니다. 여기에 대한 자세한 정보를 찾을 수 있습니다.
또한 setPreferredSize()
메서드를 사용하여 생성자를 만듭니다. width
및 height
를 인수로 사용하여 Dimension
클래스의 개체를 사용합니다.
setBounds()
또는 setSize()
대신 setPreferredSize()
를 사용하는 이유는 무엇입니까? setSize()
및 setBounds()
는 사용 중인 레이아웃 관리자가 없을 때만 사용할 수 있지만 기본 레이아웃 관리자가 있습니다.
따라서 setXXXXSize()
메서드를 통해 레이아웃 관리자에 몇 가지 힌트를 제공할 수 있습니다. 예를 들어 setPreferredSize()
.
그런 다음 화면에 그래픽을 만드는 paintComponent()
라는 메서드를 재정의합니다. super
클래스의 paintComponent()
메서드에 전달하는 Graphics
클래스의 개체를 가져옵니다.
이 개체를 사용하여 색상을 설정하고 모양을 그리는 등의 작업을 수행할 수 있습니다.
그 후, x & y 좌표를 갖는 두 개의 배열 xPoints
와 yPoints
를 생성합니다. 이 좌표와 nPoints
를 fillPolygon()
메서드에 전달하여 화면에 육각형을 만듭니다.
육각형의 정확한 점을 찾기 위해 그래프의 첫 번째 사분면을 사용하여 x 및 y 점을 얻을 수 있습니다. 다음을 참조하십시오.
이제 drawHexagon.java
클래스에 대해 이야기해 보겠습니다. add()
메서드를 사용하여 프레임에 육각형을 추가하는 JFrame
클래스 개체를 만듭니다.
setDefaultCloseOperation()
은 사용자가 화면의 십자 버튼(X
)을 누르자마자 실행됩니다. setVisible(true)
메소드는 사용자가 창을 볼 수 있도록 합니다.
setLocationRelativeTo(null)
메소드는 컴퓨터의 화면 창을 중앙에 배치합니다. 또한 pack()
은 지정된 크기 이상으로 내용물을 담을 수 있는 적절한 크기의 프레임을 만듭니다.
Java에서 객체를 사용하여 육각형 그리기
예제 코드(hexagon.java
):
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Polygon;
import javax.swing.JPanel;
public class hexagon extends JPanel {
public hexagon() {
setPreferredSize(new Dimension(250, 250));
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
Polygon p = new Polygon();
for (int i = 0; i < 6; i++)
p.addPoint((int) (100 + 50 * Math.cos(i * 2 * Math.PI / 6)),
(int) (100 + 50 * Math.sin(i * 2 * Math.PI / 6)));
g.setColor(Color.RED);
g.fillPolygon(p);
}
}
메인 클래스:
import javax.swing.JFrame;
public class drawHexagon {
public static void main(String[] args) {
JFrame frame = new JFrame("Draw Hexagon");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new hexagon());
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
출력:
hexagon.java
클래스의 paintComponent()
의 일부 변경 사항을 제외하고 모든 기능은 이전 섹션과 동일합니다.
이번에는 addPoint()
메서드를 사용하여 점을 추가하는 Polygon
클래스 개체를 만듭니다. setColor()
및 fillPolygon()
메서드를 사용하여 색상을 설정하고 모양을 채웁니다.