写了一个主JFrame作为容器类。然后写了两个JPanel,分别放置在三个文件内。
然后JPanel内有JButton,我的意图是按这个Button以后将首先的一个Panel改为令一个Panel,不知道怎么去操作。因为监听器写的内部类又无法操作JFrame内的panel,而监听器类写在Frame里面好像又不起作用,试写的代码如下,但是不起作用,希望谁能分析下:
public class main_frame extends javax.swing.JFrame {
public main_frame() {
initComponents();
init();
setContentPane(log_p);
addAllSortListener();
}
public void init() {
log_p = new log_panel();
register_p = new register_panel();
show_p = new show_panel();
}
public void addAllSortListener() {
JButton a_button;
a_button = log_p.getRegisterButton();
a_button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
changeRegisterPanel();
}
});
}
public void changeRegisterPanel() {
setContentPane(register_p);
} private log_panel log_p;
private register_panel register_p;
private show_panel show_p;
}单独调用changeRegisterPanel可以,但是加入到监听器类里面就不行了。
然后JPanel内有JButton,我的意图是按这个Button以后将首先的一个Panel改为令一个Panel,不知道怎么去操作。因为监听器写的内部类又无法操作JFrame内的panel,而监听器类写在Frame里面好像又不起作用,试写的代码如下,但是不起作用,希望谁能分析下:
public class main_frame extends javax.swing.JFrame {
public main_frame() {
initComponents();
init();
setContentPane(log_p);
addAllSortListener();
}
public void init() {
log_p = new log_panel();
register_p = new register_panel();
show_p = new show_panel();
}
public void addAllSortListener() {
JButton a_button;
a_button = log_p.getRegisterButton();
a_button.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
changeRegisterPanel();
}
});
}
public void changeRegisterPanel() {
setContentPane(register_p);
} private log_panel log_p;
private register_panel register_p;
private show_panel show_p;
}单独调用changeRegisterPanel可以,但是加入到监听器类里面就不行了。
楼主可以用CardLayout,将多个Panel都事先做好了。点Button的时候,将藏在后面的那个Panel调到前面就行了。