实现JPanel切换
首发于Enaium的个人博客
public static void main(String[] args) {JFrame jFrame = new JFrame("Test");jFrame.setSize(500, 500);jFrame.setLocationRelativeTo(jFrame.getOwner());jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jFrame.setLayout(new BorderLayout());var jPanel = new JPanel(new BorderLayout());jFrame.add(jPanel, BorderLayout.CENTER);AtomicBoolean b = new AtomicBoolean(false);jFrame.add(new JButton("Switch") {{addActionListener(e -> {b.set(!b.get());jPanel.removeAll();jPanel.repaint();jPanel.revalidate();jPanel.add(b.get() ? new JPanel() {@Overrideprotected void paintComponent(Graphics g) {setBackground(Color.RED);super.paintComponent(g);}} : new JPanel() {@Overrideprotected void paintComponent(Graphics g) {setBackground(Color.GREEN);super.paintComponent(g);}});jPanel.repaint();jPanel.revalidate();});}}, BorderLayout.SOUTH);jFrame.setVisible(true);
}
主要就是这几行
jPanel.removeAll();//移除全部
jPanel.repaint();//重绘
jPanel.revalidate();//重新验证
jPanel.add();//需要切换的JPanel
jPanel.repaint();
jPanel.revalidate();
最新在写JFrame,需要切换多个窗口太麻烦,就直接切换JPanel,最初使用的是CardLayout,限制太多,需要提前把JPanel全部加进去才能切换,后来就用这个方法来动态切换
实现JPanel切换相关推荐
- java 多个 panel_在Java中,每次我向JPanel添加多个东西时,第二...
我创建了一个JPanel并添加了几个简单的按钮,并附加了监听器.然后我决定将一个Image添加到我的面板的背景中,所以我将我的JPanel切换到了ImagePanel.按钮正在JPanel上工作,但现 ...
- java用线程插入一张图片_JAVA中怎么用线程实现图片的切换?
展开全部 自己写的代码.能通过测试 题目中的要求用线程实现图片的切换 主要有两种方式可以实现.一种62616964757a686964616fe78988e69d8331333332643937是Sw ...
- 课后练习----实现窗口的切换
1.运用事件处理相关知识,完成两个窗口之间的切换,例如:登陆窗口------>注册窗口 2.对本次作业进行总结,在编程过程中遇到哪些问题,如何解决,有哪些收获? 源代码: package bbb ...
- java 窗口 单例_java单例模式实现面板切换
本文实例为大家分享了java单例模式实现面板切换的具体代码,供大家参考,具体内容如下 1.首先介绍一下什么是单例模式: java单例模式是一种常见的设计模式,那么我们先看看懒汉模式: public c ...
- java swing 图片切换_在一个界面中要实现图片切换,用java要肿么实现??
通常可以设置某个固定的切换时间,之后显示固定的或者是随机的显示某张图片,举例: import java.awt.*; import java.awt.event.*; import javax.swi ...
- Java实验8 T1.编程包含一个标签和一个按钮,在“你好”和“再见”之间切换
编程包含一个标签和一个按钮,单击按钮时,标签的内容在"你好"和"再见"之间切换.分别用本类(该类自身),外部类,内部类,匿名内部类,以及lambda表达式完成. ...
- JavaGUI:多功能计算器(五)--Swing实现双语数据包+菜单切换(完整源码+EXE下载)
JavaGUI:多功能计算器(五)–Swing实现双语数据包+菜单切换(完整源码+EXE下载) 本文资源下载: 程序源码及可独立运行的EXE文件自解压包(32bit): 多功能计算器v0.41[双语界 ...
- Java信息管理系统界面设计(包括登录界面及界面切换)
Java学生成绩管理系统界面设计(包括登录界面及界面切换),内含学生成绩管理系统各用户应有功能模块设计. 登录界面 package Panel; import java.awt.*; import j ...
- Java国际化编程之中英文切换
一.国际化编程的本质及原理分析 一套软件,多个语言包 Java是第一个设计成支持国际化的编程语言 重点在于如下两个类: java.util.ResourceBundle 用于加载一个语言_国家包 ja ...
最新文章
- SVM+二分类+多分类
- 商业研究(7):旅游市场概览
- 数据分析与挖掘 - R语言:贝叶斯分类算法(案例三)
- java 获取类加载器_java-如何从类加载器获取类路径?
- 当代年轻人的“快乐秘籍”—— Z时代营销攻略
- linux Wi-Fi信号放大,wifi信号增强器
- JSP提交中文乱码的解决
- 如果身价千万,你还会事无巨细亲力亲为吗
- if sql语句_SQL IF语句介绍和概述
- netty与socket对比_Netty之WebSocket和四种IO介绍
- 2021第四届浙江省大学生网络与信息安全竞赛预赛部分Writeup
- 蒙特卡洛模型之神奇的布丰投针实验
- Java实现日历小程序【代码】
- 希尔密码加解密(Python)
- 【Qt5】Windows下配置程序的产品、公司、版权、版本号等详细信息
- syslinux引导硬盘linux,使用SysLinux引导Linux系统
- Android 保存图片到系统图库并通知相册刷新在部分手机的相册里无法查看的问题
- 利用Python you-get 下载网页视频
- 黑客安全专家郭盛华:逃避僵尸网络恶意软件攻击的13种方法
- 通过css注入实现的android webview的夜间模式
热门文章
- python把桢写入txt_使用Tesseract+python进行图片转文字记录
- 虚拟存储器 与虚拟内存详解
- 创建RAID5磁盘阵列和RAID10磁盘阵列
- 如何建立一个小型的局域网,来实现电脑与电脑之间的通信
- Autofill安装使用
- 微微信.NET 微信的开发者验证ASP.NET C#代码
- Codeforces Round #840 (Div. 2) and Enigma 2022 - Cybros LNMIIT题解
- Android本地视频播放器开发--NDK编译FFmpeg
- C++ using的用法
- concurrent.futures模块使用