Java 如何实现一个弹出JDialog并对它定位

来源:百度知道 编辑:UC知道 时间:2024/06/01 23:23:41
请看下具体要求:我在一个JFrame界面上建立一个按扭,然后点下这个按扭就弹出一个JDialog窗口,这些步骤都做好了,关键的是我如何对这个新弹出的JDialog实现定位,并且它的位置必须以JFrame为参照,如果我拖动JFrame窗口这个JDialog也要跟着一起动。
急~~求高手帮忙,希望能把关键的代码写出来...
如果弹出的窗口不是JDialog也可以,只要有这种效果就好了。

我写了一个方法用于计算Dialog相对于Frame的位置,用了这个方法可以保证每次打开Dialog都在Frame的正中间并且不会超过屏幕范围。如果你要求移动Frame同时移动Dialog就得靠多线程了,那部分代码自己写吧。
private Point caculateLocation() {
Point ownerLocation = getOwner().getLocation();
Dimension ownerSize = getOwner().getSize();
//Get x and y by geometry relationship
double x = 0.5 * ownerSize.getWidth() +
ownerLocation.getX() - 0.5 * dialogWidth;
double y = 0.5 * ownerSize.getHeight() +
ownerLocation.getY() - 0.5 * dialogHeight;
int screenWidth = (int) Toolkit.getDefaultToolkit().getScreenSize().width;
int screenHeight = (int) Toolkit.getDefaultToolkit().getScreenSize().height;
//Make the dialog display in the area of screen
if (x < 1) {
x = 1;
}
if (y < 1) {
y = 1;
}
if (x > screenWidth - dialogWidth) {