> Java > java지도 시간 > 마우스 클릭과 드래그를 사용하여 Java JPanel에서 선을 그리는 방법은 무엇입니까?

마우스 클릭과 드래그를 사용하여 Java JPanel에서 선을 그리는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-19 13:03:17
원래의
469명이 탐색했습니다.

How to Draw Lines in a Java JPanel Using Mouse Clicks and Dragging?

Java에서 버튼 클릭을 사용하여 JPanel에 선 그리기

코드에는 JPanel과 그 안에 여러 개의 버튼이 포함되어 있습니다. . JPanel에서 선을 그리려면 Paint() 메서드를 사용해야 합니다. 그러나 현재 코드에서는 이를 활용하고 있지 않습니다.

선 그리기 구현

선을 그리는 데 수정된 접근 방식을 사용하는 것을 고려하세요.

  1. 마우스 클릭을 처리하여 첫 번째 끝점을 표시합니다.
  2. 선을 표시하려면 드래그를 활성화하세요. 동적으로.
  3. 두 번째 끝점을 설정하려면 마우스 버튼을 놓습니다.

수정된 코드:

다음은 이 접근 방식을 통합한 수정된 코드 버전입니다.

import java.awt.*;
import java.awt.event.*;

public class circuit extends JFrame {

    private JPanel contentPane;
    private JPanel drawPane;
    private Point p1, p2;
    private boolean drawing;

    public circuit() {
        // Code...

        // Create the draw panel
        drawPane = new JPanel() {
            @Override
            protected void paintComponent(Graphics g) {
                super.paintComponent(g);
                Graphics2D g2 = (Graphics2D) g;
                g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
                if (p1 != null && p2 != null && drawing) {
                    g2.drawLine(p1.x, p1.y, p2.x, p2.y);
                }
            }
        };
        drawPane.addMouseListener(new MouseAdapter() {
            @Override
            public void mousePressed(MouseEvent e) {
                drawing = true;
                p1 = e.getPoint();
                p2 = p1;
                drawPane.repaint();
            }

            @Override
            public void mouseReleased(MouseEvent e) {
                drawing = false;
                p2 = e.getPoint();
                drawPane.repaint();
            }
        });
        drawPane.addMouseMotionListener(new MouseAdapter() {
            @Override
            public void mouseDragged(MouseEvent e) {
                if (drawing) {
                    p2 = e.getPoint();
                    drawPane.repaint();
                }
            }
        });

        // Add the draw panel to the content pane
        contentPane.add(drawPane, BorderLayout.CENTER);

        // Code...
    }

    public static void main(String[] args) {
        new circuit().setVisible(true);
    }
}
로그인 후 복사

이 코드에서는 그리기 패널의 PaintComponent() 메서드를 활용하여 두 패널 사이에 선을 그립니다. 포인트 p1과 p2. 처음 마우스를 누르면 p1에 현재 점 위치가 지정됩니다. 마우스가 움직이면 p2가 업데이트되고 선이 동적으로 표시됩니다. 마우스를 놓으면 p2에 최종 점 위치가 할당되고 선이 패널에 그려집니다.

버튼을 사용하여 그리기에 영향

세트를 생성하여 이 코드를 더욱 향상시킬 수 있습니다. 선을 이동하거나 패널을 지우는 등 그리기 과정에 영향을 미치는 버튼입니다. 예를 들어, 버튼의 레이블 방향을 기준으로 선을 일정량만큼 이동하는 작업으로 버튼을 생성할 수 있습니다.

결론

이제 버튼 클릭을 사용하여 JPanel에서 선을 그릴 수 있습니다. 그리고 마우스 움직임. 그리기 기능을 향상시키기 위해 버튼을 구현하여 보다 상호 작용적이고 사용자 정의 가능한 경험을 만들 수 있습니다.

위 내용은 마우스 클릭과 드래그를 사용하여 Java JPanel에서 선을 그리는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿