我们有一个显示大量矩形的swing应用程序。我们使用Rectangle2D.double类在JPanel上绘制矩形。 我的要求是这样的。点击矩形后,我必须从本地文件系统中选择一个图像,并将其显示在弹出窗口或框架中。 我的问题是如何在Rectangle2D.double矩形内提供超链接或按钮。 请让我知道。摆动内部的按钮Rectangle2D.double
谢谢 -Jad。
我们有一个显示大量矩形的swing应用程序。我们使用Rectangle2D.double类在JPanel上绘制矩形。 我的要求是这样的。点击矩形后,我必须从本地文件系统中选择一个图像,并将其显示在弹出窗口或框架中。 我的问题是如何在Rectangle2D.double矩形内提供超链接或按钮。 请让我知道。摆动内部的按钮Rectangle2D.double
谢谢 -Jad。
我希望这是你的意思:
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。
您想在面板上放置一个MouseListener
,即可在面板的任何位置捕获全部点击。然后,您可以从事件中获取点击的位置,并确定点击发生在哪个矩形,然后调用适合该事件和位置的代码。