Melukis Garisan dalam JPanel Menggunakan Klik Butang dalam Java
Dalam kod anda, anda telah memasukkan JPanel dan beberapa butang di dalamnya . Untuk melukis garisan dalam JPanel, anda perlu menggunakan kaedah paint(). Walau bagaimanapun, pada masa ini anda tidak menggunakannya dalam kod anda.
Pertimbangkan untuk menggunakan pendekatan yang diubah suai untuk melukis garisan:
Berikut ialah versi semakan kod anda yang menggabungkan pendekatan ini:
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); } }
Dalam kod ini, kaedah paintComponent() panel lukisan digunakan untuk melukis garisan antara dua titik p1 dan p2. Apabila tetikus pada mulanya ditekan, p1 diberikan kedudukan titik semasa. Semasa tetikus bergerak, p2 dikemas kini dan garisan dipaparkan secara dinamik. Apabila tetikus dilepaskan, p2 diberikan kedudukan titik akhir dan garisan dilukis pada panel.
Anda boleh meningkatkan lagi kod ini dengan mencipta set butang yang mempengaruhi proses lukisan, seperti menggerakkan garisan atau mengosongkan panel. Sebagai contoh, anda boleh membuat butang dengan tindakan menterjemah baris dengan jumlah tertentu berdasarkan arah label butang.
Anda kini boleh melukis garisan dalam JPanel menggunakan klik butang dan pergerakan tetikus. Butang boleh dilaksanakan untuk meningkatkan keupayaan lukisan, menjadikannya pengalaman yang lebih interaktif dan boleh disesuaikan.
Atas ialah kandungan terperinci Bagaimana untuk Melukis Garis dalam JPanel Java Menggunakan Klik Tetikus dan Menyeret?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!