我正在尝试单步执行 ArrayList<JPanel>
其中包含 ChartPanels
. Next
按钮按预期正确地逐步浏览图表,但是当我单击 Previous
按钮没有任何反应。我觉得我的逻辑可能很复杂。谢谢!
备注:panelCombination
是 JPanel
.
按钮代码:
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 ,而不是尝试删除和添加面板。通过调用 CardLayout
的 next()
和 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/