2014-02-14 4 views
0

В конструкторе главного класса у меня есть этот ActionListener прикрепленную к кнопке:JFrame и ActionListener JPanel

home.addActionListener(new ActionListener(){ 
    @Override 
    public void actionPerformed(ActionEvent e) { 
     Home homepage = new Home(); 
     homepage.setBounds(0, 100, 500, 400); 
     add(homepage); 

    } 
}); 

Это дом Класс:

package test; 

import javax.swing.JButton; 
import javax.swing.JPanel; 

public class Home extends JPanel{ 

    public Home(){ 
     JButton jb = new JButton("Back"); 
     add(jb); 
    } 
} 

Кнопка ДБ не отображается на jframe ... вы можете мне помочь?

EDIT: Это на самом деле есть, но вам нужно навести на него курсор, чтобы увидеть его ... как мы можем запросить фокус? как я делаю jb.requestFocus(), и вам все еще нужно навести на нее курсор.

+0

попробуйте 'setVisible (true)'. –

+0

Подходит ли JFrame к видимому? Вы добавляете Jpanel в рамку? Где эта часть Кодекса? –

ответ

1

При добавлении компонентов динамически, необходимо revalidate() и repaint()

add(homepage); 
    revalidate(); 
    repaint(); 

Side Примечание: Обратите внимание на Laying out Components withing a Container, чтобы узнать, как использовать менеджеры компоновки. Они предпочитают использовать нулевые макеты, как вы это делаете.

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