Java图形用户界面(容器)
1、JFrame
图形用户界面:运行后实现的是一个空白窗口,就相当于一个空窗框,我们可以根据需求一步步往“窗框”上(窗口上),添加我们想要实现的。
import javax.swing.*;
import java.awt.Color;
public class J10 extends JFrame{J10(){//setTitle("登录页面");setSize(400,500);setVisible(true);}public static void main(String[] args) { new J10();}}
像这样,添加了窗体的标题名称 setTitle("登录页面");后窗体就有名字
我们想要往框架上添加东西,首先要有承接东西的实体,JFrame就像是一个窗框,我想贴窗花,是需要贴在建立在窗框上的玻璃上,所以需要JPanel面板来实现,他就相当于JFrame上的玻璃板。
JPanel 是玻璃,p.setBackground(Color.pink);是窗花
疑惑为什么不能在main函数中直接调用JFrame中的背景色,就像错误提示中说的“不能对JFrame类型中的非静态方法进行静态调用” 这也验证了java类要实例化后才能调用,但如果是静态成员则可以直接调用。
2、JPanel
JPanel是一个无边框的容器,他是一个中间容器,必须依附在容器框架上。如窗体JFrame、对话框JDialog、其他面板上等
import java.awt.Color;
import javax.swing.JPanel;public class exp10_3 extends J10{exp10_3(){JPanel p =new JPanel();p.setLayout(null);p.setBounds(50,50,100,50);p.setBackground(Color.black); /*之前疑惑怎么能把登录界面(窗口)也添加上颜色,由此可见,是通过在窗口上添加JPanel面板,在定义面板的颜色实现的把面板的setLayout默认布局管理器关闭,带颜色的面板就和窗口大小一致,就像在窗口上盖上一层JPanel面板*/add(p);JPanel p1 =new JPanel();p1.setLayout(null);p1.setBounds(100,100,100,50);p1.setBackground(Color.pink);add(p1);}public static void main(String[] args) {// TODO 自动生成的方法存根new exp10_3();}}
运行结果:
3、JDialog 对话框
对话框窗口与普通窗口最大的区别就是对话框窗口是依附在某个窗口上的,一旦它所依附的窗口关闭了,对话框也要随之关闭。
import javax.swing;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class exp10_2 extends JDialog {
public exp10_2(JFrame f,String s) {super(f,s); //调用父类JDialog的构造方法,确定依附的窗体、确定对话框窗口标题setLayout(null);//关闭布局管理器setBounds(30,30,200,100); //精确对话框窗口的位置大小setVisible(true);// 设置对话框窗口是否为可见}
public static void main(String[] args) {J10 f =new J10(); //创建窗口对象new exp10_2 (f,"这是一个对话框窗口"); } }/*JDdialog的构造方法2 JDdialog(Frame owner,String title) ,* 其中owner参数是指自定义对话框的所有者,它可以是一个JDialog或Frame对象,Titlie用来定义对话框标题*/
其中,通过setLayout(null); 方法,可以关闭面板p上的默认布局管理器,使用 setBounds(x,y,w,h); 方法精确对话框窗口的位置大小
4、分隔面板 (JSplitPane)
关于边界布局管理器:对放在窗体容器中许多不同的容器与组件进行管理。
1、顺序布局管理器(FlowLayout)是容器(Container)与面板(JPanel)默认的布局管理器。
2、边界布局管理器(BorderLayout)把容器分为5个区:北区、南区、西区、东区和中区。(上北下南左西右东) 通过setLayout(new BorderLayout)方法调用,通过add(位置名,组件名)方法调用指定组件存放位置,如c.add("North",bN);将名称为bN的组件对象存放在容器c的北部。
3、网格布局管理器(GridLayout)通过setLayout(newGridLayout(m,n));调用一个m行n列的网格管理器。如 setLayout(newGridLayout(8,1,10,10))为8行1列,网格之间的距离为10个点距。
4、网格包布局管理器(GridBagLayout)最精细的管理器,涉及两个类多个参数。
5、卡片布局管理器(CardLayout)他将组件像卡片一样叠放在一起,每次只显示一个。
6、精确定位方法,容器中存放组件也可以不用布局管理器,使用setLayout(null)方法关闭默认布局管理器,然后使用JFrame类的setBounds(int x,int y,int w,int h)方法精确指出组件在容器中存放的位置。
题目:创建一个具有边界布局管理器,在中间空间存放分隔面板的窗口。
mport java.awt.*;
import javax.swing.*;
import javax.swing.plaf.synth.ColorType;
public class exp10_4 extends JFrame{
// public static void main(String[] args) {
//
// exp10_4 f =new exp10_4();
// f.setVisible(true);} main函数放上边放下边都行。
public exp10_4() {setTitle("分隔面板界面");setSize(450,300);JSplitPane fg1=new JSplitPane(); //创建水平方向分隔面板fg1.setBackground(Color.pink); //设置面板颜色fg1.setDividerLocation(60); //分隔条左侧的宽度为60像素//使用边界布局管理器add("Center",fg1); //分隔条添加到窗体fg1.setLeftComponent(new JLabel("左方")); add("East",new JButton("东")); //在窗体右方添加一个按钮组件add("West",new JButton("西")); //在窗体左方添加一个按钮组件add("North",new JButton("北")); //在窗体上方添加一个按钮组件add("South",new JButton("南")); //在窗体下方添加一个按钮组件JSplitPane fg2=new JSplitPane(JSplitPane.VERTICAL_SPLIT); //创建垂直方向分隔面板fg2.setDividerLocation(60); //分隔条上方的高度为60像素fg2.setDividerSize(8); //分隔条的宽度为8像素fg2.setOneTouchExpandable(true); //提供UI小部件,可以上下折叠fg2.setContinuousLayout(true); //在调整分隔条位置时面板的重绘方式为连续绘制fg1.setRightComponent(fg2); //添加到水平面板的右侧// fg2.setBackground(Color.blue);fg2.setLeftComponent(new JLabel("右上")); //在垂直面板上方添加一个标签组件fg2.setRightComponent(new JLabel("右下")); //在垂直面板下方添加一个标签组件//此处setLeftComponent Left相当于up Right 相当于down
}
public static void main(String[] args) {exp10_4 f =new exp10_4();f.setVisible(true);}}
5、选项卡面板(JTabbedPane)
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;import java.net.*;
public class exp10_5 extends JFrame{public static void main(String[] args) {exp10_5 frame =new exp10_5();frame.setVisible(true); }
public exp10_5() {super(); //调用父方法JFramesetFocusCycleRoot(true); //内容循环setTitle("选项卡面板");setBounds(100,100,500,375);final JTabbedPane tabbedpane =new JTabbedPane(); //最终类不能继承//设置选项卡标签的布局方式tabbedpane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);//滚动条tabbedpane.addChangeListener(new ChangeListener() { //监听器 匿名内部类public void stateChanged(ChangeEvent e) { //获得被选中选项卡的索引int selectedIndex = tabbedpane.getSelectedIndex();//获得指定索引的选项卡标签String title =tabbedpane.getTitleAt(selectedIndex);System.out.println(title);}});add(tabbedpane,BorderLayout.CENTER);URL resource=exp10_4.class.getResource("01.png");System.out.println(resource);/*先把“01.png”置空,根据输出的resource可知源代码的路径,找到路径后把想放的图放进去,再把图片名放的“01.png”的地方图片名.扩展名*/ImageIcon imageIcon =new ImageIcon(resource);final JLabel tabLabelA =new JLabel();tabLabelA.setText("选项卡A");//将标签组件添加到选项卡tabbedpane.addTab("选项卡A", imageIcon,tabLabelA,"单击查看选项卡A");final JLabel tabLabelB =new JLabel(); //最终类不能再继承tabLabelB.setText("选项卡B");tabbedpane.addTab("选项卡B", imageIcon,tabLabelB,"单击查看选项卡B");final JLabel tabLabelC =new JLabel();tabLabelC.setText("选项卡C");tabbedpane.addTab("选项卡C", imageIcon,tabLabelC,"单击查看选项卡C");tabbedpane.setSelectedIndex(2); //设置索引为2 的选项卡被选中
// tabbedpane.setEnabledAt(0, false); //设置索引为0的选项卡不可用}}
关于URL resource=exp10_4.class.getResource("01.png"); 图片的方法
1、通过 URL resource=exp10_4.class.getResource("");
System.out.println(resource);
找到源文件路径:
2、 根据路径在电脑上找到此文件夹
3、把想用的图片放到这个路径下
4、把图片名放到代码中 URL resource=exp10_4.class.getResource("01.png");
System.out.println(resource);
运行结果如下
Java图形用户界面(容器)相关推荐
- java界面设计素材_9.java图形用户界面设计.ppt
9.java图形用户界面设计.ppt 还剩 150页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,很抱歉,此页已超出免费预览范围啦! 如果喜欢就下载吧,价低环保! 内容要点: 151v 程 ...
- java图形用户界面实验_java图形用户界面实验教程
java图形用户界面实验教程 实 验 五 图 形 用 户 界 面实 验 目 的 1. 了 解 图 形 用 户 界 面 的 概 念 :2. 了 解 AWT 和 Swing 的 基 本 体 系 结 构 : ...
- Java图形用户界面设计音乐播放器
Java图形用户界面设计音乐播放器 设计思路 音乐播放器的基础是可以播放音乐,所以要有一个实现播放音乐功能的类audioplay,图形界面就是通过动作调用audioplay里面的函数.关于实现播放器图 ...
- java图形用户界面概述_Java中图形用户界面概述
Java中图形用户界面概述,转型或者高薪就业,java工程师是不错的选择,而且java是目前乃至未来都主流的程序语言.Java中图形用户界面概述,一起来学习下java方面的知识吧. 1.1.组件 组件 ...
- JavaGUI——Java图形用户界面
1.Java GUI 概述 GUI(Graphical User Interface,简称 GUI,图形用户界面)是指采用图形方式显示的计算机操作用户界面,与早期计算机使用的命令行界面相比,图形界面对 ...
- Java图形用户界面设计之概述
文章目录 前言 一.GUI概述 1.创建 GUI 的一般步骤: (1)Component类 (2)Container类 (3)Window类 (4)Frame 类 例:建立一个Frame对象,并使之可 ...
- java图形用户界面控件介绍,GUI(图形用户界面)详解
一.GUI(图形用户界面) GUI Graphical User Interface(图形用户接口) 用图形的方式,来显示计算机操作的界面,这样更方便更直观 CLI Command line User ...
- java 图形用户界面
目录 Swing与AWT概述 Swing概述--组件显示 框架与窗体 创建框架对象 框架Frame类结构 框架对象的创建及常用方法 创建Swing窗体对象 Swing窗体JFrame 类结构 Swin ...
- Java 图形用户界面 复习题
题目: 编写一个包含主方法main的公共类(访问权限为public的类),该类继承自窗体类JFrame,并且,该类实现了接口ActionListener(实现接口ActionListener的方法ac ...
- Java图形用户界面3—AWT事件模型
我们编写图形用户界面并不只是为了显示,我们是为了借助图形用户界面来完成我们需要的工作.这就需要程序为我们的动作比如点击按钮,做出响应然后完成我们的工作.在这里我们就用到了事件. 在Java事件模型中, ...
最新文章
- SUST_ACM_2019届暑期ACM集训热身赛题解
- java王者归来pdf_《JAVA WEB整合开发王者归来》刘京华.pdf
- 在 Ubuntu 上通过命令行改变 Linux 系统语言
- Android内核剖析 目录
- 解决多线程同时读写一个文件的问题
- how is Java Bean object created
- SmartGWT入门,提供出色的GWT界面
- android handler同步,android解决:使用多线程和Handler同步更新UI
- SubRenamer – 字幕批量重命名,自动匹配视频文件与字幕文件[Windows]
- 模型如何京东培训6万人
- @EnableWebMvc启动springmvc特性
- 凭实力蝉联第一!Flink 又双叒叕上榜啦
- 使用源代码编译安装基于LAMP的网站架构
- 流程图与活动图的区别与联系
- IIS部署,发布网站精选
- 程序员投入时间和精力实现财富增长之道,这可能会伴随你程序员整个生涯(请不要连续点赞)
- 目标检测 | 丰富特征导向Refinement Network用于目标检测(附github源码)
- 不能撑开盒子css,CSS padding在什么情况下不撑开盒子
- 纯前端实现 App Store 卡片展开效果
- 行人跟踪之身份识别(三)