2015-03-30 2 views
-1

Хорошо .. Я переписывание этого вопрос ..setBackground является неукрашенным JFrame

Я обнаружил, что setUndecorated() не была проблемой.

Проблема была setBackground(new Color(0, 0, 0, 0)

После нескольких попыток, тем CardLayout показывал правильный результат

, когда альфа-канал фона был 1 (полностью непрозрачный).

И еще это показало неправильный результат.

public SmartPhone() { 
    super("SmartPhone"); 

    setUndecorated(true); 
    setBackground(new Color(1f, 1f, 1f, .5f)); 

    setSize(FRAME_WIDTH, FRAME_HEIGHT); 
    init(); start(); 

    device = this; 
} 

Это мой конструктор. init() - метод создания макета и start() - это метод добавления MouseAdapter.

Есть ли что-то не так с моим setBackground()?

ответ

3

При переключении между компонентами в CardLayout используйте метод CardLayout.show(), не используйте непосредственно setVisible(). Как это:

CardLayout cardLayout = new CardLayout(); 
JPanel cardPanel = new JPanel(cardLayout); 
String oneStr = "One"; 
String twoStr = "Two"; 
JLabel oneLabel = new JLabel(oneStr); 
JLabel twoLabel = new JLabel(twoStr); 
cardPanel.add(oneLabel, oneStr); 
cardPanel.add(twoLabel, twoStr); 

cardLayout.show(cardPanel, oneStr);//sets "One" visible 
cardLayout.show(cardPanel, twoStr);//sets "Two" visible 

Смотрите здесь: http://docs.oracle.com/javase/tutorial/uiswing/layout/card.html

+0

Спасибо за ваш комментарий и большой отзыв. Но опять же, это не сработает .. :( Я обновил свой вопрос и свой код. Обратите внимание, если возникнут какие-либо проблемы. –

-1

Um ... решаемые ..?

Я не знаю, что я сделал, но после выполнения какой-либо другой проект,

компоненты были напечатаны хорошо ..!