Java 摆动矩形内的按钮2D.double
我们有一个swing应用程序,它显示许多矩形。我们使用Rectangle2D.double类在JPanel上绘制矩形。 我的要求是这样。单击矩形后,我必须从本地文件系统中选择一个图像,并将其显示在弹出窗口或框架中。 我的问题是如何在矩形2D.double矩形内提供超链接或按钮。 请让我知道 谢谢Java 摆动矩形内的按钮2D.double,java,swing,button,hyperlink,Java,Swing,Button,Hyperlink,我们有一个swing应用程序,它显示许多矩形。我们使用Rectangle2D.double类在JPanel上绘制矩形。 我的要求是这样。单击矩形后,我必须从本地文件系统中选择一个图像,并将其显示在弹出窗口或框架中。 我的问题是如何在矩形2D.double矩形内提供超链接或按钮。 请让我知道 谢谢 -Jad.您想在面板上放置一个鼠标侦听器,它将捕捉面板上任何地方的所有点击。然后,您可以从事件中获取单击的位置,并确定单击发生在哪个矩形中,然后调用适合该事件和位置的代码。我希望这就是您的意思: imp
-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);
}
}
此程序绘制一个矩形,如果在矩形内单击,则打印true,否则打印false