Tracer une ligne dans un JPanel à l'aide d'un clic de bouton en Java
Dans votre code, vous avez inclus un JPanel et plusieurs boutons à l'intérieur . Pour tracer une ligne dans le JPanel, vous devez utiliser la méthode paint(). Cependant, vous ne l'utilisez pas actuellement dans votre code.
Envisagez d'utiliser une approche modifiée pour tracer des lignes :
Voici une version révisée de votre code qui intègre cette approche :
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); } }
Dans ce code , la méthode paintComponent() du panneau de dessin est utilisée pour tracer la ligne entre les deux points p1 et p2. Lorsque vous appuyez initialement sur la souris, p1 se voit attribuer la position actuelle du point. Au fur et à mesure que la souris se déplace, p2 est mis à jour et la ligne est affichée dynamiquement. Lorsque la souris est relâchée, p2 se voit attribuer la position du point final et la ligne est tracée sur le panneau.
Vous pouvez améliorer davantage ce code en créant un ensemble de boutons qui affectent le processus de dessin, comme déplacer la ligne ou effacer le panneau. Par exemple, vous pouvez créer un bouton avec l'action de traduire la ligne d'une certaine valeur en fonction de la direction de l'étiquette du bouton.
Vous pouvez désormais tracer des lignes dans un JPanel en cliquant sur un bouton. et les mouvements de la souris. Des boutons peuvent être implémentés pour améliorer les capacités de dessin, ce qui en fait une expérience plus interactive et personnalisable.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!