【问题标题】:Button inside swing Rectangle2D.double摆动 Rectangle2D.double 内的按钮
【发布时间】:2011-01-01 14:27:09
【问题描述】:

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

谢谢 -贾德。

【问题讨论】:

    标签: java swing button hyperlink


    【解决方案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。

    【讨论】:

      【解决方案2】:

      您想在面板上放置MouseListener,这将捕获面板上任意位置的所有点击。然后,您可以从事件中获取单击的位置,并确定单击发生在哪个矩形中,然后调用适合该事件和位置的代码。

      【讨论】:

        猜你喜欢
        • 2020-06-13
        • 1970-01-01
        • 1970-01-01
        • 2013-05-27
        • 2012-10-06
        • 1970-01-01
        • 1970-01-01
        • 2016-12-10
        • 2013-12-06
        相关资源
        最近更新 更多