Heim >Java >javaLernprogramm >Wie zeichne ich Linien in einem Java JPanel mit Mausklicks und Ziehen?
Zeichnen einer Linie in einem JPanel mit Button Click in Java
In Ihrem Code haben Sie ein JPanel und mehrere darin enthaltene Schaltflächen eingefügt . Um eine Linie im JPanel zu zeichnen, müssen Sie die Methode paint() verwenden. Allerdings verwenden Sie es derzeit nicht in Ihrem Code.
Erwägen Sie die Verwendung eines modifizierten Ansatzes zum Zeichnen von Linien:
Hier ist eine überarbeitete Version Ihres Codes, die diesen Ansatz enthält:
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); } }
In diesem Code , wird die Methode paintComponent() des Zeichenpanels verwendet, um die Linie zwischen den beiden Punkten p1 und p2 zu zeichnen. Beim ersten Drücken der Maus wird p1 die aktuelle Punktposition zugewiesen. Während sich die Maus bewegt, wird p2 aktualisiert und die Linie wird dynamisch angezeigt. Wenn die Maus losgelassen wird, wird p2 die endgültige Punktposition zugewiesen und die Linie wird auf dem Panel gezeichnet.
Sie können diesen Code weiter verbessern, indem Sie einen Satz erstellen von Schaltflächen, die den Zeichenvorgang beeinflussen, z. B. das Verschieben der Linie oder das Löschen des Bedienfelds. Sie können beispielsweise eine Schaltfläche mit der Aktion erstellen, die Linie basierend auf der Beschriftungsrichtung der Schaltfläche um einen bestimmten Betrag zu verschieben.
Sie können jetzt Linien in einem JPanel mithilfe von Schaltflächenklicks zeichnen und Mausbewegungen. Es können Schaltflächen implementiert werden, um die Zeichenfunktionen zu verbessern und das Erlebnis interaktiver und anpassbarer zu gestalten.
Das obige ist der detaillierte Inhalt vonWie zeichne ich Linien in einem Java JPanel mit Mausklicks und Ziehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!