我正在尝试单步执行包含ArrayList<JPanel>
的{{1}}。 ChartPanels
按钮按预期正确地逐步浏览图表,但是当我单击Next
按钮时没有任何反应。我觉得我的逻辑可能会令人费解。谢谢!
注意:Previous
是panelCombination
。
按钮代码:
JPanel
答案 0 :(得分:2)
使用CardLayout
更改视图,而不是尝试删除和添加面板。您可以通过调用next()
的{{1}}和previous()
方法轻松完成您要执行的操作。您真正需要做的就是将CardLayout
的布局设置为panelCombination
,将所有面板添加到CardLayout
并使用这些方法
panelCombination
了解详情
同样从您方法签名的外观来看,您似乎正在使用NetBeans GUI Builder。您可以看到How to Use CardLayout with Netbeans GUI Builder
答案 1 :(得分:1)
如果其他人在将来遇到此问题:我在阅读javadoc和链接peeskillet后使用的代码提供:
public class ResultsFrame extends javax.swing.JFrame {
public static CardLayout switchPanels;
/**
* Creates new form ResultsFrame
*/
public ResultsFrame() {
initComponents();
switchPanels = new CardLayout();
panelCombination.setLayout(switchPanels);
getPDDGraph();
//getProfileGraph();
}
private void NextMouseClicked(java.awt.event.MouseEvent evt){
switchPanels.next(panelCombination);
}
private void PreviousMouseClicked(java.awt.event.MouseEvent evt) {
switchPanels.previous(panelCombination);
}
public static void getPDDGraph() {
.....
JFreeChart chart = new JFreeChart(xyplot);
ChartPanel chartPanel = new ChartPanel(chart);
panelCombination.add(chartPanel);
}
再次感谢,它比我之前做的更容易,更加浓缩!