JPanel.remove 不适用于 JButton actionListener?

问题描述

所以我正在制作一个简单的测试程序,我在 JFrame 的底部添加了两个按钮来在问题之间前进和后退。这是通过在程序顶部有一个名为 page 的静态 int 来完成的,该 int 在程序开始时被初始化为 0。我所有的问题都是扩展 JPanel 的类,它们位于 ArrayList 中。当按下前进按钮时,当前问题面板将按计划移除,页面递增,然后在页面索引处添加来自 ArrayList 的问题。这一切都很完美,但是当我按下上一个问题按钮时,所有发生的都是页面变量递减并显示相同的问题。我做错了什么?

JButton backward = new JButton("PrevIoUs Question");
JButton forward = new JButton("Next Question");

backward.addActionListener((ActionEvent event) -> {
    if(page > 0)
    {
        panel.remove((Component) questions.get(page));
        page--;
        panel.add((Component) questions.get(page),BorderLayout.CENTER);
    }
});

forward.addActionListener((ActionEvent event) -> {
    if(page < questions.size() - 1)
    {
        panel.remove((Component) questions.get(page));
        page++;
        panel.add((Component) questions.get(page),BorderLayout.CENTER);
        frame.setVisible(true);
    }
    frame.setVisible(true);
}); 

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)