在Swing中实现后退/前进按钮我有个简短的问题。我在Swing方面获得了一些经验,最简单的方法就是绘制一个相当大的GUI。作为GUI的一部分,我希望有前进和后退按钮。我试图采用的方法是实现将当前JPanel推到堆栈并检索前一个值的方法(无论是正向还是反向(因此是2个堆栈)。但我不能让它起作用。也许我是完全错误地使用它,或者一个堆栈不能像我使用它那样被使用。不管是哪种情况,都让我心烦。我想可能有更简单的方法,如卡片布局,但我认为这种方法应该有效,这就是什么是如此恼人。值得注意的是,我正在使用JFrame“基类”,并根据屏幕更改中央JPanel。然而,导航条作为“基类”的一部分是常量。这个“基类”的代码:public class Main_Frame extends JFrame{
static JPanel nav_bar_panel;
JButton home;
JButton back;
JButton forward;
JPanel currentPanel;
static Stack<JPanel> previousPanels;
static Stack<JPanel> forwardPanels;
public Main_Frame(){
super("DEMO");
setSize(800,600);
setLayout(new BorderLayout());
setVisible(true);
add(nav_bar(), BorderLayout.NORTH);
currentPanel = init_display();
add(currentPanel, BorderLayout.CENTER);
previousPanels = new Stack<JPanel>();
forwardPanels = new Stack<JPanel>();
}
private JPanel nav_bar(){
ButtonPressHandler handler = new ButtonPressHandler();
nav_bar_panel = new JPanel(new FlowLayout(FlowLayout.LEFT, 10, 10));
back = new JButton("Back");
back.addActionListener(handler);
home = new JButton("Home");
home.addActionListener(handler);
forward = new JButton("Forward");
forward.addActionListener(handler);
nav_bar_panel.add(back);
nav_bar_panel.add(home);
nav_bar_panel.add(forward);
return nav_bar_panel;
}
private JPanel init_display(){
Home_Panel home_panel = new Home_Panel();
return home_panel;
}
public void change_display(JPanel myPanel){
invalidate();
remove(currentPanel);
previousPanels.push(currentPanel);
currentPanel = myPanel;
add(currentPanel);
validate();
}
添加回答
举报
0/150
提交
取消