2010-01-05 47 views
0

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

谢谢 -Jad。

回答

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); 
    } 

} 

该程序绘制一个矩形和打印真实,如果你点击矩形内,否则为false。

0

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