91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

java line2d事件處理如何實現

小樊
82
2024-09-20 20:37:31
欄目: 編程語言

在Java中,處理Line2D事件的常用方法是使用MouseListener和MouseMotionListener接口。以下是一個簡單的示例,演示了如何實現Line2D事件處理:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Line2DEventHandlingExample {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> createAndShowGUI());
    }

    private static void createAndShowGUI() {
        JFrame frame = new JFrame("Line2D Event Handling Example");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 400);

        Line2D line = new Line2D.Double(50, 50, 350, 350);
        ShapePanel panel = new ShapePanel(line);

        frame.add(panel);
        frame.setVisible(true);
    }
}

class ShapePanel extends JPanel {
    private Line2D line;

    public ShapePanel(Line2D line) {
        this.line = line;
        addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                if (line.contains(e.getPoint())) {
                    System.out.println("Line clicked!");
                } else {
                    System.out.println("Line not clicked.");
                }
            }
        });

        addMouseMotionListener(new MouseMotionAdapter() {
            @Override
            public void mouseDragged(MouseEvent e) {
                System.out.println("Mouse dragged.");
            }
        });
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        Graphics2D g2d = (Graphics2D) g;
        g2d.setStroke(new BasicStroke(2));
        g2d.draw(line);
    }
}

在這個示例中,我們創建了一個名為Line2DEventHandlingExample的主類,它包含一個簡單的Swing應用程序。我們創建了一個名為ShapePanel的自定義面板,它接受一個Line2D對象作為參數。在ShapePanel類中,我們添加了MouseListenerMouseMotionListener接口的實現,以便在單擊線條和處理鼠標拖動事件時執行相應的操作。

當用戶單擊線條時,mouseClicked方法將被調用。我們使用Line2D.contains()方法檢查鼠標點擊位置是否在線條上。如果是,則輸出"Line clicked!“,否則輸出"Line not clicked.”。

當用戶拖動鼠標時,mouseDragged方法將被調用。在這個示例中,我們只是簡單地輸出"Mouse dragged.",但你可以根據需要執行其他操作。

0
弥勒县| 灵寿县| 安吉县| 瑞丽市| 迭部县| 景德镇市| 花莲市| 华容县| 建昌县| 岳阳市| 本溪市| 沂南县| 页游| 崇明县| 电白县| 渝中区| 乌兰察布市| 太原市| 汪清县| 南昌县| 明光市| 鄄城县| 望江县| 阿城市| 抚顺县| 同德县| 全州县| 富裕县| 周至县| 武汉市| 承德市| 象州县| 陈巴尔虎旗| 敖汉旗| 原阳县| 福州市| 斗六市| 洪江市| 玉溪市| 漳平市| 揭东县|