与顶层容器不同的是,面板不能独立存在,必须被添加到其他容器内部。在进行界面设计时,通常将用户界面划分成若干个区域,每个区域用一个面板。这样处理的好处是:将窗口内容结构化,有利于管理、更换、调试。...例12-3运行结果 图12.5中,运行程序结果,先创建了JFrame窗体,然后设置布局,创建一个容器JPanel,最后将中间容器添加进JFrame窗体。...如果需要在JScrollPane面板中放置多个组件,需要先将多个组件放置在JPanel面板容器上,然后将JPanel面板作为一个整体组件添加到JScrollPane面板中。...JScrollPane的使用,如例12-4所示。...例12-4运行结果 案例12-4中,在JTextArea文本区域组件不断输入内容回车,当内容超出滚动面板宽度和高度的时候,JScrollPane会出现横向和纵向滚动条。
Window默认使用BorderLayout来管理其内部组件的布局。 不可独立存在的容器,如Panel类和ScrollPane类。这些容器不能独立存在,必须内嵌在其他容器中使用。...而ScrollPane是一个带滚动条的容器,它也不能独立存在,默认使用BorderLayout来管理其内部组件布局。...面板容器(Panel) 面板是一种特殊的容器,没有边框,不能独立存在和显示,必须作为组件添加到其他容器中:与窗体容器的特性不同。它的功能就是利用既是组件又是容器的特点,对其他组件进行分组放置。...在AWT中,通过 Panel 类实例化面板对象。调用面板对象的 add()方法将有关联的组件添加到面板上,实现组件的分组;然后,该面板对象作为其他容器对象的 add()方法的参数,放置到其他容器中。...ScrollPane.SCROLLBARS_ALWAYS表示始终显示垂直和水平滚动条,即使内容没有溢出。
之前在进行Java的窗体开发时经常会把容器、面板与布局管理混淆,从而不能正确的使用这三种属性对窗体应用进行布局。所以今天在这里记录一下Java窗体中容器、面板及常见的四大布局管理器的用法。...面板 在JPanel面板中我们可以添加一些组件来对该面板中的内容进行布局,之所以它具备这样的功能,是因为JPanel面板同样也继承了java.awt.Container类,因此它同样是具有Container...JScrollPane面板,原因是因为JScrollPane面板是自带滚动条的,并且同时它也是一种容器,这也是在做相关开发时我们设置滚动条常用的一种方法。...、南、西、北、中五个区域,在容器中添加组件时,我们可以设置组将放入到哪一个区域中,关于区域的控制可以使用BorderLayout类中的成员方法来确定,关于这些成员变量的具体含义可以参考下表: 成员变量...含义 BorderLayout.NORTH 在容器中添加组件时,组件置于顶端 BorderLayout.SOUTH 在容器中添加组件时,组件置于底端 BorderLayout.EAST 在容器中添加组件时
BorderLayout(边界布局管理器) 东,南,西,北,中,Frame默认的布局管理器。 //边界布局勾画出一个集装箱,安排和调整其成分放在五个区域:北,南,东,西,和中心。...事件处理: 事件: 用户的一个操作 事件源: 被操作的组件 监听器: 一个自定义类的对象, 实现了监听器接口, 包含事件处理方法,把监听器添加在事件源上, 当事件发生的时候虚拟机就会自动调用监听器中的事件处理方法...//成员变量 SCROLLBARS_HORIZONTAL_ONLY //创建和显示水平滚动条只。 SCROLLBARS_VERTICAL_ONLY //创建和显示垂直滚动条只。...TextArea("Hello", 5, 40); //默认显示Hello字符串然后5行10列 ta.getText(); ta.setText("覆盖原来的字符"); ta.append("追加字符串到文本编辑框中...物理字体包含字形数据和表格图从字符序列符号序列的实际字体库,使用字体技术如TrueType和PostScript Type 1,所有的java平台实现必须支持TrueType字体;其他字体技术支持是依赖于实现的
Javaswing的历史可以追溯到1995年,当时Java刚刚诞生,它的图形用户界面技术是基于AWT(Abstract Window Toolkit)的。...Swing最初是作为一个可选的扩展包提供的,后来在1998年被集成到了Java 2平台中,并成为了Java标准图形用户界面技术。...布局是指Swing组件在容器中的排列方式,如水平对齐、垂直对齐等,它们都实现了java.awt.LayoutManager接口,并提供了一些常用的布局管理器,如流式布局、网格布局等。...第二个例子是一个简单的文本编辑器程序,它使用了Swing的文本区域、菜单、工具栏和滚动条等组件,以及拖放、撤销/重做和打印等功能,实现了基本的文本编辑功能。...sendFlowerCard(); } }); buttonPanel.add(sendButton); // 添加面板到主窗口
add到这个窗体中,才会显示 /** * 展示java swing中的常见组件 */ public class UserInputForm extends JFrame{...而是添加到中间层容器。当然,这个中间层容器也必须添加到底层容器JFrame中才会启作用。否则显示不出来 即必须有一个类继承至JFrame,且这个类将面板或是布局,add进去。...然后实例化这个继承至JFrame的类,才看的到。 1:JPanel面板:常用JPanel作为一个面板,最普通的面板,向该面板中添加组件。...默认布局是FlowLayout 2:JTabbedPane可切换选项卡面板:特点,向该面板中添加组件时,会可以为这个组件添加选项卡。...setLayout(new BorderLayout()); //将这个选项卡面板添加入该MixedForm的中区域 add(tabbedPane,BorderLayout.CENTER
之前和大家分享了使用TCP协议进行网络通信的过程,想了解的小伙伴可以看我的这篇文章《Java利用TCP协议实现客户端与服务器通信》,今天来和大家分享一下在Java网络编程开发中,使用UDP协议进行网络通信...upJPanel.add(startReceive); upJPanel.add(stopReceive); add(upJPanel, BorderLayout.NORTH); //将放置按钮的面板添加到窗体中...,并且放置在窗体的上部 thread = new Thread(this); //构造函数中建立线程 startReceive.addActionListener(this); //为开始接收按钮添加监听...textJPanel.add(stopTestArea); //将接收信息的文本框添加到面板 final JScrollPane scrollPane = new JScrollPane...stopTestArea); //为文本框添加滚动条 add(textJPanel, BorderLayout.CENTER); //将放置文本框的面板添加到窗体 并置于中间部分 setBounds
常用的中间容器(面板): # 组件 描述 1 JPanel 一般轻量级面板容器组件 2 JScrollPane 带滚动条的,可以水平和垂直滚动的面板组件 3 JSplitPane 分隔面板 4 JTabbedPane...布局管理器 把 Swing 的各种组件(JComponent)添加到面板容器中(JPanel),需要给面板容器指定布局管理器(LayoutManager),明确容器(Container)内的各个组件之间的排列布局方式...7 BorderLayout 边界布局,把Container按方位分为 5 个区域(东、西、南、北、中),每个区域放置一个组件。...创建一个基本组件(按钮),并添加到 面板容器 中 JButton btn = new JButton("测试按钮"); panel.add(btn); // 4....把 面板容器 作为窗口的内容面板 设置到 窗口 jf.setContentPane(panel); // 5.
import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout...;//放置检索分类 JPanel centerPanel = new JPanel();//放置文本框和二维表 JPanel southPanel = new JPanel();//放置按钮 // 添加面板到窗体...=null);} //当没有检索到书的时候显示结果 if(!exist){ JLabel label_result = new JLabel("没有检索到该书!!")... 没有找到此书 JLabel label_result = new JLabel("没有检索到该书!!")...()); // 创建面板 并进行布局 JPanel centerPanel = new JPanel(); JPanel southPanel = new JPanel(); //将面板添加到窗体 this.add
12.1 Swing概述 GUI(图形用户界面)为程序提供图形界面,它最初的设计目的是为程序员构建一个通用的GUI,使其能够在所有的平台上运行,但Java1.0中基础类AWT(抽象窗口工具箱)并没有达到这个要求...可以通过继承java.swing.JFrame类创建一个窗体,在这个窗体中添加组件,同时为组件设置事件。...个区域,可以将组件加入到这5个区域中。...JScrollPane面板是带滚动条的面板,只能放置一个组件,不可以使用布局管理器。...如果需要在JScrollPane面板中放置多个组件,需要将多个组件放置在JPanel面板上,然后将JPanel面板作为一个整体组件添加在JScrollPane组件上。
可以通过指定BorderLayout类中的CENTER、NORTH、SOUTH、EAST和WEST常量添加组件。并没有要求所有的位置都要占满。如果不提供任何值,系统默认为CENTER。...例如,在图9-10中,屏幕底部的三个按钮包含在一个面板中。这个面板被放置到内容窗格的南部。 假设希望显示如图9-10所示的外观,添加一个存放三个按钮的面板。...首先创建一个新的JPanel的对象,然后往面板中添加单个按钮。面板的默认布局管理器是FlowLayout,这符合我们的需求。最后使用add方法将每个按钮添加到面板中。...由于把按钮添加到面板中且没有改变默认的布局管理器,所以每个按钮的位置和大小都由FlowLayout管理器所控制。这意味着这些按钮将显示在面板中央并且不会扩展至填充整个面板区域。...这是一个规则的计算器,而不是在Java指南中的那种奇怪的计算器。在这个程序中,添加组件到框架之后,调用pack方法。这个方法用于将所有组件以最佳的高度和宽度显示在框架中。
FlowLayout.LEADING,20,20)); jPanel.setBackground(Color.pink); //设置背景色 add(jPanel); //添加面板到容器...JTextField("密码文本框",20)); p2.add(new JTextField("验证码文本框",20)); cards.add(p1,"card1"); //向卡片式布局面板中添加面板...1 cards.add(p2,"card2"); //向卡片式布局面板中添加面板2 CardLayout cl=(CardLayout)(cards.getLayout()); cl.show...JTextField("密码文本框",20)); p2.add(new JTextField("验证码文本框",20)); cards.add(p1,"card1"); //向卡片式布局面板中添加面板...(font); panel.add(butResult); panel.add(new JButton("+")); add(panel); //添加面板到容器
(p4,BorderLayout.NORTH); //向panel面板的北面添加p4面板 } } //查询数据实现 import java.awt.BorderLayout; import java.awt.event.ActionEvent...如: 数学成绩!!"...BorderLayout布局 p2.add(p1,BorderLayout.SOUTH); //向p2面板中添加p1面板 p2.add(area); //向p2面板中添加...(table),BorderLayout.NORTH); //向panel3面板中添加表格 } } } // 修改数据实现 import java.awt.BorderLayout; import...,BorderLayout.WEST); //向panel4面板中添加p2面板并放在panel4的西面。
单击”抽奖”按钮时,线程对象停止运行,并且将准确的中奖号码显示在信息文本框中。 开发一个抽奖小工具的实例。 (1)自定义文本框组件,把5个生成随机数的文本框的公共属性抽象定义到该文本框。...(10); contentPanel.setLayout(borderLayout); //设置内容面板布局管理器 getContentPane().add(contentPanel); //添加内容面板到窗体...final JPanel numPanel = new JPanel(); //创建显示随机数的面板 contentPanel.add(numPanel); //添加随机数面板到内容面板 final.../设置面板布局管理器 contentPanel.add(infoPanel, BorderLayout.SOUTH); //添加面板到窗体 final JLabel label_1 = new JLabel...getContentPane().add(controlPanel, BorderLayout.SOUTH); //添加面板到窗体底部 final JButton startButton = new
注意点 使用BorderLayout 有如下两个注意点: 当向使用 BorderLayout 布局管理器的容器中添加组件时 , 需要指定要添加到哪个区域中 。...如果没有指定添加到哪个区域中,则默认添加到中间区域中; 如果向同一个区域中添加多个组件时 , 后放入的组件会覆盖先放入的组件; 构造方法 构造方法 方法功能 BorderLayout() 使用默认的水平间距...布局在面板上添加了五个按钮。...每个按钮分别位于面板的不同位置(北、南、西、东和中心)。最后,将面板添加到主窗口中并显示窗口。...如 果其增 加比例为 0 , 则 表示不会增加 。
,只学习数组,所以单独改造了一个数组版本的,因为考虑到通用型,采用读取任意位置的txt文本,只需要按照格式一行一行的写入学生就可以实现点名了,采用的Random实现伪随机。...(new BorderLayout(3, 1)); // 添加提示标签在北方 p.add(jt, BorderLayout.NORTH); // 添加姓名标签在中央...p.add(name, BorderLayout.CENTER); // 添加按钮控件在南方 p.add(btn, BorderLayout.SOUTH...(new BorderLayout(3, 1)); // 添加提示标签在北方 p.add(jt, BorderLayout.NORTH); // 添加姓名标签在中央...p.add(name, BorderLayout.CENTER); // 添加按钮控件在南方 p.add(btn, BorderLayout.SOUTH
Panel可以看成是一个面板,简单来说就是一个容器。...frame中 frame.add(b1); frame.add(b2,BorderLayout.SOUTH); //设置frame最佳大小并可见...frame中 frame.add(open_file_b); frame.add(save_file_b,BorderLayout.SOUTH); frame.pack...在GUI事件处理机制中涉及到4个重要的概念需要理解: 事件源(Event Source):操作发生的场所,通常指某个组件,例如按钮、窗口等; 事件(Event):在事件源上发生的操作可以叫做事件,GUI...frame中间区域中 frame.add(ta); //把panel添加到frame底部 frame.add(panel,BorderLayout.SOUTH
MainPanel.add(yearMonthPanel, BorderLayout.NORTH);// 添加年月面板到日历面板的南面(最上方) yearMonthPanel.setLayout..., BorderLayout.WEST);// 年份面板添加到年月面板西部(左边) yearPanel.setLayout(new BorderLayout());// 设置年份面板为边布局并添加年份标签和组合框...添加月份面板到年月面板的东面(右面) monthPanel.setLayout(new BorderLayout());// 月份面板设为边布局方式 monthPanel.add(monthsLabel...;// 添加标题文本显示面板到年月面板中间 txetPanel.add(textLabel, BorderLayout.CENTER);// 添加标题文本标签到面板 // -----------...MainPanel.add(InfoPanel, BorderLayout.SOUTH);// 添加个人信息显示面板到日历面板南方(下方) InfoPanel.add(InfoLabel);/
领取专属 10元无门槛券
手把手带您无忧上云