按钮内部摆动Rectangle2D.double

时间:2010-01-05 10:40:55

标签: java swing button hyperlink

我们有一个摆动应用程序,它显示了很多矩形。我们使用Rectangle2D.double类在JPanel上绘制矩形。 我的要求就是这个。单击矩形后,我必须从本地文件系统中选择一个图像并在弹出窗口或框架中显示它。 我的问题是我如何在Rectangle2D.double矩形内提供超链接或按钮。 请告诉我。

由于 -Jad。

2 个答案:

答案 0 :(得分:1)

我希望这就是你的意思:

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

public class RectButton extends JPanel {

    Rectangle2D.Double rect;

    public RectButton() {
        this.addMouseListener(new MouseAdapter() {
            public void mouseClicked(MouseEvent e) {
                Point point = e.getPoint();
                System.out.println(checkRectArea(point));
                // Do whatever else you want here.
            }
        });
    }

    public boolean checkRectArea(Point point) {
        return rect.contains(point);
    }

    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        rect = new Rectangle2D.Double(10, 10, 50, 50);
        g2.draw(rect);
    }

    public static void main(String[] args) {
        JFrame frame = new JFrame();
        RectButton r = new RectButton();
        frame.add(r);
        frame.setSize(new Dimension(300, 300));
        frame.setVisible(true);
    }

}

此程序绘制一个矩形,如果在矩形内部单击则打印为true,否则为false。

答案 1 :(得分:0)

您希望在面板上放置MouseListener,以便在面板上的任何位置捕获所有点击。然后,您可以从事件中获取点击的位置,并确定点击发生的矩形,然后调出适合该事件和位置的代码。