ホームページ >Java >&#&チュートリアル >マウスのクリックとドラッグを使用して Java JPanel に線を描く方法

マウスのクリックとドラッグを使用して Java JPanel に線を描く方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-19 13:03:17439ブラウズ

How to Draw Lines in a Java JPanel Using Mouse Clicks and Dragging?

Java でのボタン クリックを使用した JPanel 内での線の描画

コードには、JPanel とその中にいくつかのボタンが含まれています。 JPanel で線を描くには、paint() メソッドを使用する必要があります。ただし、現時点ではコードでこれを利用していません。

線描画の実装

線を描画するための変更されたアプローチの使用を検討してください。

  1. マウス クリックを処理して、最初の終点をマークします。
  2. ドラッグを有効にして線を表示します
  3. マウス ボタンを放して 2 番目のエンドポイントを確立します。

修正コード:

このアプローチを組み込んだコードの修正バージョンを次に示します:

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。