Получение неожиданного вывода из программы свинга

Почему в следующем коде я получаю невидимое окно? Что делает setUndecorated() и где оно используется.

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);. Я должен использовать один из них, иначе будет выдано исключение.


person Insane Coder    schedule 08.08.2012    source источник
comment
Какую часть javadoc этих методов вы не понимаете?   -  person Robin    schedule 08.08.2012
comment
В нем говорится, что для setUndecorated() этот метод можно вызывать только тогда, когда фрейм не отображается. Чтобы сделать эту рамку декорированной, она должна быть непрозрачной и иметь форму по умолчанию, иначе будет выброшено исключение IllegalComponentStateException. Я сбит с толку, поскольку он говорит, что для того, чтобы сделать его украшенным, он должен иметь форму по умолчанию и непрозрачность, тогда что, если мы хотим даже изменить форму, а также непрозрачность. Другими словами, я не понимаю, для чего использовать setUndecorated.   -  person Insane Coder    schedule 08.08.2012


Ответы (1)


SetUndecorated вызывается для кадра, чтобы удалить строку заголовка/кнопку увеличения/и т. д. Вот хороший пример: в форме" rel="nofollow">http://docs.oracle.com/javase/tutorial/uiswing/misc/trans_Shaped_Windows.html#в форме

person James    schedule 08.08.2012