자바에서 육각형 그리기
 
이 기사는 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() 메서드를 사용하여 색상을 설정하고 모양을 채웁니다.
