JAVA学习Swing章节JPanel和JScrollPane面板的简单学习
package com.swing; import java.awt.Container; import java.awt.GridLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.WindowConstants; /** * 1:常用面板 * 面板也是一个Swing容器,他可以看作为容器容纳其他组件,但它也必须被添加到其他容器中 * Swing中常用的面板包括JPanel面板和JScrollPane面板 * * 2:JPanel面板可以聚集一些组件来布局 * 读者首先应该明白面板也是一种容器,因为它继承了java.awt.Container类 * @author biexiansheng * */ public class JPanelTest extends JFrame{ public JPanelTest(){ Container container=getContentPane();//设置一个容器 //将整个容器设置为2行1列的网格布局 网格布局管理器x,y代表行和列 container.setLayout(new GridLayout(2,1,10,10)); //初始化一个面板,设置1行3列的网格布局 JPanel p1=new JPanel(new GridLayout(1,3,10,10)); JPanel p2=new JPanel(new GridLayout(1,2,10,10)); JPanel p3=new JPanel(new GridLayout(1,2,10,10)); JPanel p4=new JPanel(new GridLayout(2,1,10,10)); //在面板中添加按钮 p1.add(new JButton("1")); p1.add(new JButton("2")); p1.add(new JButton("3")); p2.add(new JButton("4")); p2.add(new JButton("5")); p3.add(new JButton("6")); p3.add(new JButton("7")); p4.add(new JButton("8")); p4.add(new JButton("9")); //最重要的一步,将面板实例添加到容器中 container.add(p1); container.add(p2); container.add(p3); container.add(p4); //将容器外部特性实例化 setTitle("JPanel面板的案例"); setSize(400,250);//设窗体的大小 宽和高 setVisible(true);//设定窗体的可视化 //设置窗体的关闭方式 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { // TODO Auto-generated method stub JPanelTest jt=new JPanelTest(); } }
案例运行结果如下
package com.swing; import java.awt.Container; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.WindowConstants; /** * 1:设置界面时,可能会遇到在一个较小的容器窗体中显示一个较大部分的内容的情况,这时 * 可以使用JScrollPane面板 * * 2:JScrollPane面板是带滚动条的面板,它也是一个面板,但是JScrollPane只能 * 放置一个组件,并且不可以使用布局管理器 * * 3:如果需要在JScrollPane面板中放置多个组件,需要将多个组件放置在JPanel面板上, * 然后将JPanel作为一个整体组件添加到JScrollPane组件上。 * * 4:从本实例可以得到在窗体中创建一个带滚动条的文字编辑器,首先需要初始化编辑器, * 并且在初始化时完成编译器的大小指定,当创建带滚动条的面板时,将编译器加入面板中 * ,最后将带滚动条的编译器放置在容器中即可 * @author biexiansheng * */ public class JScrollPaneTest extends JFrame{ //导入包的快捷键 shift+ctrl+o public JScrollPaneTest(){//定义一个构造方法 Container container=getContentPane();//创建一个容器 //创建文本区域组件 JTextArea ta=new JTextArea(20,50); //创建JScrollPane()面板对象,并将文本域对象添加到面板中 JScrollPane sp=new JScrollPane(ta); //将该面板添加到该容器中 container.add(sp); //设置容器的外部特性 setTitle("带滚动条的文字编辑器");//设置窗口的标题文字 setSize(400,400);//设置窗口的大小 setVisible(true);//设置可视化 //设置窗口的关闭方式 setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) { // TODO Auto-generated method stub JScrollPaneTest jp=new JScrollPaneTest(); } }
案例运行结果如下
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?