java的Frame中的窗体大小设置问题
创建一个frame以后,我想把一个图片做为背景显示出来怎么办?frame四周的边框很讨厌啊。。。如果我用g.drawImage直接画的话,其他还都算了,可是上面很多都被边...
创建一个frame以后,我想把一个图片做为背景显示出来怎么办?
frame四周的边框很讨厌啊。。。
如果我用g.drawImage直接画的话,其他还都算了,可是上面很多都被边框盖住了。怎么解决?
api上说:该矩形左上角的位置为 (insets.left, insets.top),宽度为 width - (insets.left + insets.right),长度为 height - (insets.top + insets.bottom)。
感觉这个不好用啊,有其他的方法么?
填满的话也是上面很多都被边框盖住啊。。。 展开
frame四周的边框很讨厌啊。。。
如果我用g.drawImage直接画的话,其他还都算了,可是上面很多都被边框盖住了。怎么解决?
api上说:该矩形左上角的位置为 (insets.left, insets.top),宽度为 width - (insets.left + insets.right),长度为 height - (insets.top + insets.bottom)。
感觉这个不好用啊,有其他的方法么?
填满的话也是上面很多都被边框盖住啊。。。 展开
2个回答
展开全部
下面这个程序就是将一个图片显示在窗体之前,当然,四周也不会显示出来
public class FirstFrame extends JFrame
{
FirstFrame(int time)
{
super("欢迎");
Container container = getContentPane();
JLabel jl = new JLabel(new ImageIcon("image/welcome.jpg"));//该标签在其显示区内垂直和水平居中对齐
container.add(jl, BorderLayout.CENTER);
setUndecorated(true); //禁用或启用此窗体的装饰,只有在窗体不可显示时才调用此方法
setVisible(true);
pack(); //调整此窗口的大小,以适合其子组件的首选大小和布局
Dimension screenSize =Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕的大小,在具有多个显示屏的系统上,使用主显示屏
Dimension labelSize = jl.getPreferredSize();
setLocation(screenSize.width/2 - (labelSize.width/2),screenSize.height/2 - (labelSize.height/2));
final int pause = time;
final Runnable closerRunner = new Runnable()
{
public void run()
{
setVisible(false);
dispose();
}
};
Runnable waitRunner = new Runnable()
{
public void run()
{
try
{
Thread.sleep(pause);
SwingUtilities.invokeAndWait(closerRunner);//导致Runnable的run()在 AWT事件指派线程上同步执行
}
catch(Exception e){}
}
};
Thread waitThread = new Thread(waitRunner, "SplashThread");//run 方法被调用的对象,新线程的名称
waitThread.start();
}
public static void main(String args[])
{
new FirstFrame(1500);
try
{
Thread.sleep(1500);
}
catch(Exception e){}
}
public class FirstFrame extends JFrame
{
FirstFrame(int time)
{
super("欢迎");
Container container = getContentPane();
JLabel jl = new JLabel(new ImageIcon("image/welcome.jpg"));//该标签在其显示区内垂直和水平居中对齐
container.add(jl, BorderLayout.CENTER);
setUndecorated(true); //禁用或启用此窗体的装饰,只有在窗体不可显示时才调用此方法
setVisible(true);
pack(); //调整此窗口的大小,以适合其子组件的首选大小和布局
Dimension screenSize =Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕的大小,在具有多个显示屏的系统上,使用主显示屏
Dimension labelSize = jl.getPreferredSize();
setLocation(screenSize.width/2 - (labelSize.width/2),screenSize.height/2 - (labelSize.height/2));
final int pause = time;
final Runnable closerRunner = new Runnable()
{
public void run()
{
setVisible(false);
dispose();
}
};
Runnable waitRunner = new Runnable()
{
public void run()
{
try
{
Thread.sleep(pause);
SwingUtilities.invokeAndWait(closerRunner);//导致Runnable的run()在 AWT事件指派线程上同步执行
}
catch(Exception e){}
}
};
Thread waitThread = new Thread(waitRunner, "SplashThread");//run 方法被调用的对象,新线程的名称
waitThread.start();
}
public static void main(String args[])
{
new FirstFrame(1500);
try
{
Thread.sleep(1500);
}
catch(Exception e){}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询