2013-12-11 2 views
0

У меня есть программа, которая имеет окно входа в систему, окно регистрации и окно программы. Когда я запускаю программу, сначала открывается окно входа в систему, и все хорошо. Я нажимаю регистр, и это окно всплывает, и все хорошо, но когда я нажимаю логин, откроется окно программы, но в кадре ничего не будет показано. У меня есть все мои компоненты, хранящиеся в JTabbedPane, и я храню JTabbedPane в JPanel, чтобы я мог использовать его в JFrame, но когда я открываю окно программы, он показывает пустой кадр. Единственное, если вы наведите указатель мыши на позицию, где находится текстовый объект, он отобразит текстовый курсор, и если вы нажмете на него, появится текстовое поле! Как заставить его отображать все компоненты панели при открытии окна?Окно программы не отображается в кадре

public JPanel panelProgram() 
{ 
    programPanel.setLayout(null); 

    tabbedPane = new JTabbedPane(); 
    tabbedPane.setBounds(0, 10, programW - 10, programH - 10); 
    tabbedPane.setVisible(true); 
    ImageIcon icon = new ImageIcon("src/cpt/admin/images/middle.gif"); 

    proPanTab1 = showInputScreen(); 
    tabbedPane.addTab("Input Accounts", icon, proPanTab1, "Input New Acocunts"); 

    proPanTab2 = showSearchScreen(); 
    tabbedPane.addTab("Search Accounts", icon, proPanTab2, "Search Through Accounts"); 

    proPanTab3 = showEmailScreen(); 
    tabbedPane.addTab("Send Email", icon, proPanTab3, "Send an Email to Accounts"); 

    tabbedPane.setTabLayoutPolicy(JTabbedPane.WRAP_TAB_LAYOUT); 

    programPanel.add(tabbedPane); 

    return programPanel; 
} 
+2

1) Чтобы лучше помочь, опубликуйте [SSCCE] (http://sscce.org/). 2) Возможно, вызывая 'pack()' в нужный момент. Чтобы обновить «вероятно» до «определенно», опубликуйте SSCCE. –

+0

Я второй, что @AndrewThompson рекомендует и добавит общий совет, что вам следует избегать использования нулевых макетов, поскольку они только сделают ваш GUI очень сложным для улучшения или поддержки. –

+0

Почему вы опубликовали фрагмент кода, который несовместим? Вы собираетесь опубликовать SSCCE? –

ответ

0

Использование programPanel.setLayout(null); установит компоненты в этой панели к нулю, и, таким образом, не будет отображаться. Вы можете получить размер компонентов, позвонив getPreferredSize().

Вы должны использовать LayoutManager для лучшего варианта компоновки.

Смежные вопросы