java - 显示图表故障的下一个和上一个按钮

标签 java swing jpanel jfreechart

我正在尝试单步执行 ArrayList<JPanel>其中包含 ChartPanels . Next按钮按预期正确地逐步浏览图表,但是当我单击 Previous按钮没有任何反应。我觉得我的逻辑可能很复杂。谢谢!

备注:panelCombinationJPanel .

按钮代码:

public static int advance = 0;
public static ArrayList<JPanel> chartList = new ArrayList<>();

private void NextMouseClicked(java.awt.event.MouseEvent evt) {                                  

        panelCombination.removeAll();
        panelCombination.add(chartList.get(advance));
        panelCombination.validate();
        if (advance < chartList.size()-1) {
            advance++;
        }
}                                 

private void PreviousMouseClicked(java.awt.event.MouseEvent evt) {                                      

    if (advance > 0) {
         advance--;
    }
    panelCombination.removeAll();
    panelCombination.add(chartList.get(advance));
    panelCombination.validate();
}                            

最佳答案

使用 CardLayout 更改 View ,而不是尝试删除和添加面板。通过调用 CardLayoutnext()previous() 方法,您可以轻松完成您要做的事情。您真正需要做的就是将 panelCombination 的布局设置为 CardLayout,将所有面板添加到 panelCombination 并使用这些方法

CardLayout layout = new CardLayout();
panelCombination.setLayout(layout);
// add all panels.
....
private void PreviousMouseClicked(java.awt.event.MouseEvent evt) { 
    layout.previous(panelCombination);

查看更多信息 How to Use CardLayout

另外,从您的方法签名来看,您似乎正在使用 NetBeans GUI Builder。可以看到How to Use CardLayout with Netbeans GUI Builder

关于java - 显示图表故障的下一个和上一个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23046106/

相关文章:

java - Spring-data-jpa:批量插入不起作用

Java : JDBC Connection Issue When Click On Button

java - JTextArea对齐

java - 使用循环创建新的 jpanels

Java Swing 将类动态加载到面板中

java - 刷新项目失败-Android Studio-Ubuntu

java - 在循环中每次迭代后更改变量名称

java - 为什么 switch 语句无法按需要打印字符串? ( java )

java - 在 java 中设置 jLabel 文本抛出异常

java - JPanel 元素未出现