当你在框架中运行任何输出时,每次运行程序它都会弹出在屏幕的不同位置上吗?
JFrame
的setLocation(int, int)
方法将JFrame
定位到新位置。Random
生成随机位置,每次都会在随机位置弹出您的框架。setVisible(boolean)
方法。public void setVisible(boolean visible){
super.setVisible(visible);
if (visible) {
Random r = new Random();
// Find the screen size
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension d = tk.getScreenSize();
// randomize new location taking into account
// the screen size, and current size of the window
int x = r.nextInt(d.x - getWidth());
int y = r.nextInt(d.y - getHeight());
setLocation(x, y);
}
}
if (visible)
块中的代码可以移动到构造函数中。但是,getWidth()
和getHieght()
方法可能不会返回您期望的正确值。
使用java.util.Random
的nextInt(int)
方法与JFrame.setLocation(int, int)
方法结合使用。
例如,
frame.setLocation(random.nextInt(500), random.nextInt(500));
frame.setLocation((int)Math.random(), (int)Math.random());
希望这能帮到您!