我需要一个简单的例子,说明如何使用CardLayout(或其他东西?)在一个JFrame中管理多个JPanel(使用不同的类创建)。这是我需要的一个说明性示例:
小组A :
小组B :
文件结构示例:
movactions: [
{
_id: $created_at,
count: ?,
data:[
{
_id: "$action",
count: 3,
data: [
{
_id: "$subaction",
count: 2
}
]
}
]
},
]
我发现了很多这样做的例子,但是所有的JPanel都是在JButton作为字段的同一个类中创建的,所以Listener可以访问它们。我尝试编辑这些示例但没有成功。 抱歉我的英文不好,谢谢你提前!
答案 0 :(得分:1)
尝试这样的事情:
Gui.java:
public class Gui {
...
JPanel cards = ne JPanel(new CardLayout());
private void initComponetns() {
...
// cards to be the container with CardLayout...
cards.add(new PanelA(this));
cards.add(new PanelB(this));
...
}
}
PanelA.java
public class PanelA extends JPanel {
...
private final Gui gui;
PanelA(Gui gui) {
this.gui = gui;
}
... () {
setBackground(Color.ORANGE);
JButton btn = new JButtn("Show Panel B");
add(btn);
}
public void actionPerformed(ActionEvent ae) {
...
gui.cards. ...
}
}
PanelB.java
public class PanelB extends JPanel {
...
private final Gui gui;
PanelB(Gui gui) {
this.gui = gui;
}
...
... () {
setBackground(Color.GREEN);
JButton btn = new JButtn("Show Panel A");
add(btn);
}
public void actionPerformed(ActionEvent ae) {
...
gui.cards. ...
}
}