kha*_*led 4 java swing awt layout-manager cardlayout
我想通过单击 JPanel 上的按钮在 JPanel 之间切换。
例如:我有一个带有 JButton simknop 的 JPanel sim 和带有 JButton helpknop 的 JPanel 帮助我想通过单击按钮在这两个 JPanel 之间切换。当我点击 JButton simknop JPanel 帮助应该出现,当我点击 JButton 帮助 JPanel sim 应该出现。
您可以在下面找到不同的类:
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();
}
Run Code Online (Sandbox Code Playgroud)
public class sim extends JPanel
{
JButton simknop;
public sim()
{
simknop = new JButton("simknop");
this.add(simknop);
this.setBackground(Color.black);
}
}
Run Code Online (Sandbox Code Playgroud)
public class help extends JPanel
{
JButton helpknop;
public help()
{
helpknop = new JButton("helpknop");
this.add(helpknop);
this.setBackground(Color.red);
}
Run Code Online (Sandbox Code Playgroud)
我想为此使用 CardLayout,但我不知道如何使它工作以侦听不同的 ActionListeners。
任何帮助是极大的赞赏!
1) 按钮不应位于 CardLayout 的每个面板上。它们需要位于另一个始终可见的外部面板上,无论卡片面板上显示的是哪张卡片。
2) 一旦您的按钮被正确定位,您将向每个按钮添加一个 ActionListener,其 actionPerformed 方法将类似于(以 SIM 按钮为例):
CardLayout cl = (CardLayout) cards.getLayout();
cl.show(cards, "SIM");
Run Code Online (Sandbox Code Playgroud)
进一步阅读:如何使用 CardLayout
编辑:理论上,您可以直接在卡面板上使用按钮,但它会是每个面板上的相反按钮(即,SIM 按钮将位于“帮助”面板上,反之亦然)。
| 归档时间: |
|
| 查看次数: |
10812 次 |
| 最近记录: |