从Swing程序获得意外的输出 [英] Getting unexpected output from the swing program

查看:97
本文介绍了从Swing程序获得意外的输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在下面的代码中,为什么我会看到一个不可见的窗口? setUndecorated()用途及其用途.

In the following code why i'm getting an invisible window?What does setUndecorated() do and where it is used for.

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.SwingUtilities;


public class UsingJLayer {

UsingJLayer()
{
    JFrame jfrm=new JFrame("Picasa Viewer");
    jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Dimension dim=Toolkit.getDefaultToolkit().getScreenSize();
    jfrm.setSize(dim);
    jfrm.setUndecorated(true);
    jfrm.setBackground(new Color(0,100,0,0));


    jfrm.setVisible(true);

}
public static void main(String[] args) {
    //JFrame.setDefaultLookAndFeelDecorated(true);
    SwingUtilities.invokeLater(new Runnable(){public void run(){new UsingJLayer();}});

}

}

其次,如果我注释掉jfrm.setUndecorated(true)而不是使用JFrame.setDefaultLookAndFeelDecorated(true);,那么我将得到一个半透明的窗口. 因此,setUndecorated()JFrame.setDefaultLookAndFeelDecorated(true);是什么.我必须使用其中之一,否则会引发异常.

Secondly if i comment out jfrm.setUndecorated(true) and instead use JFrame.setDefaultLookAndFeelDecorated(true); then i get a translucent window as expected. So,what is setUndecorated() and JFrame.setDefaultLookAndFeelDecorated(true);.I have to use one of them as otherwise an exception is thrown.

推荐答案

在框架上调用SetUndecorated以删除标题栏/最大化按钮/等.这是一个很好的示例:

SetUndecorated is called on a frame to remove The title bar/maximize button/ etc. Here is a good example: http://docs.oracle.com/javase/tutorial/uiswing/misc/trans_shaped_windows.html#shaped

这篇关于从Swing程序获得意外的输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆