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()メソッドを利用して、 2 つの点 p1 と p2。最初にマウスを押すと、p1 に現在のポイント位置が割り当てられます。マウスの移動に応じて p2 が更新され、線が動的に表示されます。マウスを放すと、p2 に最終点の位置が割り当てられ、パネル上に線が描画されます。
セットを作成することで、このコードをさらに強化できます。線の移動やパネルのクリアなど、描画プロセスに影響を与えるボタンの一覧です。たとえば、ボタンのラベルの方向に基づいて線を一定量移動するアクションを持つボタンを作成できます。
ボタンのクリックを使用して JPanel に線を描画できるようになりました。そしてマウスの動き。ボタンを実装して描画機能を強化し、よりインタラクティブでカスタマイズ可能なエクスペリエンスを実現できます。
以上がマウスのクリックとドラッグを使用して Java JPanel に線を描く方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。