Java에서 버튼 클릭을 사용하여 JPanel에 선 그리기
코드에는 JPanel과 그 안에 여러 개의 버튼이 포함되어 있습니다. . JPanel에서 선을 그리려면 Paint() 메서드를 사용해야 합니다. 그러나 현재 코드에서는 이를 활용하고 있지 않습니다.
선을 그리는 데 수정된 접근 방식을 사용하는 것을 고려하세요.
다음은 이 접근 방식을 통합한 수정된 코드 버전입니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!