java窗体面板切换_如何在面板中切换JFrame中的JPanels?

这篇博客展示了如何在Java窗体中使用CardLayout布局管理器来切换JFrame内的JPanels。通过创建不同颜色的面板(黄色和红色),并设置CardLayout,实现了点击按钮在两个面板间的切换。示例代码详细解释了实现过程。
摘要由CSDN通过智能技术生成

像这样:

import java.awt.BorderLayout;

import java.awt.CardLayout;

import java.awt.Color;

import java.awt.Dimension;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class CardLayoutDemo extends JFrame {

public final String YELLOW_PAGE = "yellow page";

public final String RED_PAGE = "red page";

private final CardLayout cLayout;

private final JPanel mainPane;

boolean isRedPaneVisible;

public CardLayoutDemo(){

setTitle("Card Layout Demo");

setDefaultCloseOperation(EXIT_ON_CLOSE);

setLocationRelativeTo(null);

mainPane = new JPanel();

mainPane.setPreferredSize(new Dimension(250,150));

cLayout = new CardLayout();

mainPane.setLayout(cLayout);

JPanel yellowPane = new JPanel();

yellowPane.setBackground(Color.YELLOW);

JPanel redPane = new JPanel();

redPane.setBackground(Color.RED);

mainPane.add(YELLOW_PAGE, yellowPane);

mainPane.add(RED_PAGE, redPane);

showRedPane();

JButton button = new JButton("Switch Panes");

button.addActionListener(e -> switchPanes() );

setLayout(new BorderLayout());

add(mainPane,BorderLayout.CENTER);

add(button,BorderLayout.SOUTH);

pack();

setVisible(true);

}

void switchPanes() {

if (isRedPaneVisible) {showYelloPane();}

else { showRedPane();}

}

void showRedPane() {

cLayout.show(mainPane, RED_PAGE);

isRedPaneVisible = true;

}

void showYelloPane() {

cLayout.show(mainPane, YELLOW_PAGE);

isRedPaneVisible = false;

}

public static void main(String[] args) {

new CardLayoutDemo();

}

}

e4b2b065fe1f26ccc8606453f1edc49f.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值