Java基础入门 Swing中间容器的使用
Java基础入门 Swing中间容器
在Swing中不仅有JFrame、JDialog这样的顶级窗口,还拥有一些中间容器,这些容器不能单独存在,必须依存在顶级窗口中。最常见的是JPanel、JScrollPane。
JPanel
:JPanel和AWT中的Panel组件使用方法基本一致,他是一个无边框不能被放大、移动、关闭的面板,它的默认布局管理器是FlowLayout,当然这是可以使用setLayout()方法重新设置的JScrollPane
:与JPanel不同的是,JScrollPane是一个带有滚动条的面板容器而且这个面板只能添加一个组件,如果想添加多个组件就必须先把多个组件添加到Panel中再将Panel添加到JScroollPane中
下面举例说明一下JScrollPane的方法
方法声明 | 功能描述 |
JScrollPane() | 创建一个空的JScrollPane面板 |
JScrollPane(Component view) | 创建一个显示指定组件的JScrollPane面板,只要组件大小超过面板大小就会出现水平和垂直滚动条 |
JScrollPane(Component view,int vsbPolicy,int hsbPoliy) | 创建一个显示指定容器的JScrollPane面板 |
import java.awt.*; import javax.swing.*; public class Main extends JFrame{ public Main(){ this.setTitle("PanelDemo"); JScrollPane scrollPane=new JScrollPane(); //设置水平进度条需要时出现 scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED); //设置垂直进度条一直出现 scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); JPanel panel=new JPanel(); panel.add(new JButton("按钮1")); panel.add(new JButton("按钮2")); panel.add(new JButton("按钮3")); panel.add(new JButton("按钮4")); for(int i=5;i<100;i++){ panel.add(new JButton("按钮"+i)); } //将JPanel面板添加在滚动面板上显示 scrollPane.setViewportView(panel); //将滚动面板添加到窗体的中部(CENTER) this.add(scrollPane,BorderLayout.CENTER); //创建窗体可关闭按钮 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(400,250); this.setVisible(true); } public static void main(String[] args)throws Exception{ new Main(); } }
Java Swing顶层容器类
Swing拥有三个常用的顶层容器类
JFrame
JDialog
JApplet
1,任何画面类,必须是容器类的分支,任何界面树的顶层容器类必须是上面三个中的一个。
2,任何画面组件只能被容器类引用一次,如果复制他们到另外的容器类,它会被从第一个容器类中删除然后放在第二个容器类中。
3,顶层容器类都含有一个内容面板,包含了顶层容器要显示的内容
4,顶层容器类通常含有一个Menu Bar, 这个Menu Bar可以带来更好的使用体验,比如在Mac系统中,Menu bar会显示在screen顶上而不是app顶上。
注意,JPanel默认的排版方式是FlowLayout
但是可以使用顶层容器类的setContentPanel替换成自定义布局的JPanel类。
示例代码:
package com.jesse.kotlin.com.jesse.gui import java.awt.BorderLayout import java.awt.Dimension import javax.swing.* class WindowMain { private val rootContainer = JFrame("GUI Demo") fun buildGui(){ rootContainer.defaultCloseOperation = JFrame.EXIT_ON_CLOSE var label = JLabel("Hello world") rootContainer.contentPane.add(label, BorderLayout.CENTER) rootContainer.preferredSize = Dimension(400, 300) var menuPanel:JMenuBar = JMenuBar() menuPanel.add(JMenu("help")) rootContainer.jMenuBar = menuPanel rootContainer.pack() rootContainer.isVisible = true } } fun main(args: Array<String>) { SwingUtilities.invokeLater { WindowMain().buildGui() } }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持猪先飞。
原文出处:https://blog.csdn.net/qq_40788630/article/details/82383673
相关文章
- 这篇文章主要介绍了如何利用java语言实现经典《复杂迷宫》游戏,文中采用了swing技术进行了界面化处理,感兴趣的小伙伴可以动手试一试...2022-02-01
java 运行报错has been compiled by a more recent version of the Java Runtime
java 运行报错has been compiled by a more recent version of the Java Runtime (class file version 54.0)...2021-04-01- 这篇文章主要介绍了在java中获取List集合中最大的日期时间操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
- 这篇文章主要介绍了教你怎么用Java获取国家法定节假日,文中有非常详细的代码示例,对正在学习java的小伙伴们有非常好的帮助,需要的朋友可以参考下...2021-04-23
- 这篇文章主要介绍了Java如何发起http请求的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-31
- 说起C#和Java这两门语言(语法,数据类型 等),个人以为,大概有90%以上的相似,甚至可以认为几乎一样。但是在工作中,我也发现了一些细微的差别...2020-06-25
- 这篇文章主要介绍了解决Java处理HTTP请求超时的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
- 这篇文章主要介绍了java 判断两个时间段是否重叠的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-15
java 画pdf用itext调整表格宽度、自定义各个列宽的方法
这篇文章主要介绍了java 画pdf用itext调整表格宽度、自定义各个列宽的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-31- 这篇文章主要介绍了超简洁java实现双色球若干注随机号码生成(实例代码),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-04-02
- 这篇文章主要介绍了Java生成随机姓名、性别和年龄的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-10-01
- 这篇文章主要介绍了java正则表达式判断前端参数修改表中另一个字段的值,需要的朋友可以参考下...2021-05-07
Java使用ScriptEngine动态执行代码(附Java几种动态执行代码比较)
这篇文章主要介绍了Java使用ScriptEngine动态执行代码,并且分享Java几种动态执行代码比较,需要的朋友可以参考下...2021-04-15- 这篇文章主要介绍了Java开发实现人机猜拳游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-08-03
- 这篇文章主要介绍了Java List集合返回值去掉中括号('[ ]')的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-29
Java 8 Stream 的终极技巧——Collectors 功能与操作方法详解
这篇文章主要介绍了Java 8 Stream Collectors 功能与操作方法,结合实例形式详细分析了Java 8 Stream Collectors 功能、操作方法及相关注意事项,需要的朋友可以参考下...2020-05-20Java中lombok的@Builder注解的解析与简单使用详解
这篇文章主要介绍了Java中lombok的@Builder注解的解析与简单使用,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-01-06- 下面小编就为大家带来一篇java中String类型变量的赋值问题介绍。小编觉得挺不错的。现在分享给大家,给大家一个参考。...2016-03-28
- 这篇文章主要介绍了Java线程池中的各个参数如何合理设置操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-06-19
- 这篇文章主要介绍了详解Java后端优雅验证参数合法性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-18