자바에서 육각형 그리기

Mehvish Ashiq 2024년2월15일
  1. Java에서 배열을 사용하여 육각형 그리기
  2. Java에서 객체를 사용하여 육각형 그리기
자바에서 육각형 그리기

이 기사는 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);
  }
}

출력:

Java에서 배열을 사용하여 그린 육각형

이 코드 예제에는 main 기능이 있는 hexagon.javadrawHexagon.java라는 두 개의 클래스가 있습니다. hexagon.javapaintComponent()라는 메서드를 재정의하기 때문에 JPanel 클래스를 확장합니다.

java.swing 패키지 클래스 중 JPanel은 다양한 구성 요소를 저장하는 컨테이너와 같습니다.

주요 작업은 다양한 구성 요소와 레이아웃을 구성하는 것입니다. 여기에 대한 자세한 정보를 찾을 수 있습니다.

또한 setPreferredSize() 메서드를 사용하여 생성자를 만듭니다. widthheight를 인수로 사용하여 Dimension 클래스의 개체를 사용합니다.

setBounds() 또는 setSize() 대신 setPreferredSize()를 사용하는 이유는 무엇입니까? setSize()setBounds()는 사용 중인 레이아웃 관리자가 없을 때만 사용할 수 있지만 기본 레이아웃 관리자가 있습니다.

따라서 setXXXXSize() 메서드를 통해 레이아웃 관리자에 몇 가지 힌트를 제공할 수 있습니다. 예를 들어 setPreferredSize().

그런 다음 화면에 그래픽을 만드는 paintComponent()라는 메서드를 재정의합니다. super 클래스의 paintComponent() 메서드에 전달하는 Graphics 클래스의 개체를 가져옵니다.

이 개체를 사용하여 색상을 설정하고 모양을 그리는 등의 작업을 수행할 수 있습니다.

그 후, x & y 좌표를 갖는 두 개의 배열 xPointsyPoints를 생성합니다. 이 좌표와 nPointsfillPolygon() 메서드에 전달하여 화면에 육각형을 만듭니다.

육각형의 정확한 점을 찾기 위해 그래프의 첫 번째 사분면을 사용하여 x 및 y 점을 얻을 수 있습니다. 다음을 참조하십시오.

배열을 사용하여 Java에서 육각형 그리기

이제 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);
  }
}

출력:

Java에서 객체를 사용하여 그린 육각형

hexagon.java 클래스의 paintComponent()의 일부 변경 사항을 제외하고 모든 기능은 이전 섹션과 동일합니다.

이번에는 addPoint() 메서드를 사용하여 점을 추가하는 Polygon 클래스 개체를 만듭니다. setColor()fillPolygon() 메서드를 사용하여 색상을 설정하고 모양을 채웁니다.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook