在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中文網其他相關文章!