gpt4 book ai didi

java - CardLayout,通过 ButtonClick 在 JPanel 之间切换

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:36 24 4
gpt4 key购买 nike

我想通过单击 JPanel 上的按钮在 JPanel 之间切换。

例如:我有一个带有 JButton simknop 的 JPanel sim 和一个带有 JButton helpknop 的 JPanel 帮助我想通过单击按钮在这两个 JPanel 之间切换。当我单击 JButton simknop JPanel 帮助时应该出现,当我单击 JButton 帮助时,JPanel sim 应该出现。

您可以在下面找到不同的类别:

主.java

public class main extends JFrame
{

JPanel cards;
sim sim;
help help;

public main()
{
this.setSize(1024,768);
//this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Crazy Bombardement");
this.setLocation(800, 100);//standaard in de hoek van het scherm

cards = new JPanel();
cards.setLayout(new CardLayout());
sim = new sim();
help = new help();

cards.add(sim, "SIM");
cards.add(help, "HELP");

this.add(cards);
this.setVisible(true);
}

public static void main(String[] args)
{
new main();
}

sim.java

public class sim extends JPanel
{
JButton simknop;

public sim()
{
simknop = new JButton("simknop");
this.add(simknop);
this.setBackground(Color.black);
}

}

help.java

public class help extends JPanel
{
JButton helpknop;

public help()
{
helpknop = new JButton("helpknop");
this.add(helpknop);
this.setBackground(Color.red);
}

我想为此使用 CardLayout,但我不知道如何让它工作以收听不同的 ActionListeners。

非常感谢任何帮助!

最佳答案

1) 按钮不应位于 CardLayout 中的每个面板上。它们需要位于另一个始终可见的外部面板上,无论卡片面板上显示的是哪张卡片。

2) 一旦你的按钮被正确定位,你可以为每个按钮添加一个 ActionListener,其 actionPerformed 方法看起来像这样(以 SIM 卡按钮为例):

CardLayout cl = (CardLayout) cards.getLayout();
cl.show(cards, "SIM");

进一步阅读:How To Use CardLayout

编辑:理论上,您可以将按钮直接放在卡面板上,但它会是每个面板上的相反按钮(即,SIM 按钮会在帮助面板上,并且反之亦然)。

关于java - CardLayout,通过 ButtonClick 在 JPanel 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15840686/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com