java swing界面设计_java swing界面设计
展开全部
GUI图形界面设计的重点是布局
SWING也是采用AWT的布局方式,进行布局管理的。(实现LayoutManager接口的方62616964757a686964616fe58685e5aeb931333337626232法,来进行管理布局,API中已有实现类,我们通常只需要指定实现类,而不需要自己重写方法)
常用的布局有绝对布局, 边界布局BorderLayout,流布局FlowLayout,表格布局GridLayout。
JFrame等重量级组件,默认布局是边界布局,JPanel轻量级组件,默认布局是流布局
绝对布局:布局的特点,需要指定每个组件的大小,和具体位置。优点:充分的自定义,充分的自由,可以写出漂亮的 ,细致的界面
缺点:绝对布局在不同的操作系统下,会有一些不同程度的变化,导致界面变形,甚至组件重叠等。在同一操作系统下,窗口放大缩小,界面也会变形
绝对布局的范例
import javax.swing.JButton;
import javax.swing.JFrame;
public class Frame1 extends JFrame{
JButton jb1;
public Frame1() {
setLayout(null);//指定窗口的布局管理器为空,也就是绝对布局
jb1 = new JButton("按钮");
jb1.setLocation(100, 50);//指定组件的位置
jb1.setSize(80, 30);//指定组件的大小
//jb1.setBounds(100, 50, 80, 30);//上面两句代码等同于这句代码
add(jb1);
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new Frame1().setVisible(true);
}
}边界布局BorderLayout:它可以对容器组件进行安排,并调整其大小,使其符合下列五个区域:北、南、东、西、中。每个区域最多只能包含一个组件优点:比较常用的布局,简单易掌握,放大缩小,不影响组件的位置
缺点:组件位置不够灵活。每个区域如果添加多个组件,那么后面的组件会覆盖前面的组件。(因为可以嵌套其他组件使用,所以这些缺点基本都能克服)
3. 代码参考import javax.swing.*;
import java.awt.*;
public class P004_BorderLayout {
JFrame jframe;
JButton jb1,jb2,jb3,jb4,jb5;
public P004_BorderLayout(){
jframe = new JFrame();
jframe.setTitle("边界布局");
jframe.setBounds(300, 200, 180, 180);
jb1 = new JButton("东");
jframe.add(jb1, BorderLayout.EAST);
jb2 = new JButton("西");
jframe.add(jb2,BorderLayout.WEST);
jb3 = new JButton("南");
jframe.add(jb3,BorderLayout.SOUTH);
jb4 = new JButton("北");
jframe.add(jb4,BorderLayout.NORTH);
jb5 = new JButton("中");
jframe.add(jb5);//BorderLayout.CENTER可以省略
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setVisible(true);
}
public static void main(String[] args) {
new P004_BorderLayout();
}
}
流布局FlowLayout:像一排文字一个挨着一个的布局。流布局用于安排有向流中的组件,这非常类似于段落中的文本行。流的方向可以指定。优点:可以快速添加组件,不用指定位置,也不用指定边界
缺点:线性排列 ,外观单调。(嵌套其他布局,可以忽略缺点)
代码参考import java.awt.FlowLayout;
import javax.swing.*;
public class P003_FlowLayout {
JFrame jframe;
public P003_FlowLayout(){
jframe = new JFrame("流式布局");
for (int i = 1; i <= 5; i++) {
jframe.add(new JButton(i+""));
}
jframe.setLocation(380, 260);
jframe.setLayout(new FlowLayout(FlowLayout.LEFT));//窗口指定位流式布局,方向从左往右
jframe.pack();
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.setVisible(true);
}
public static void main(String[] args) {
new P003_FlowLayout();
}
}
表格布局GridLayout:它以矩形网格形式对容器的组件进行布置。容器被分成大小相等的矩形,一个矩形中放置一个组件。优点:组件整齐排列,
缺点:如果添加的组件数量,和指定的数量不一致,容易导致缺失等
参考代码import javax.swing.*;
import java.awt.*;
public class P005_GridLayout {
JFrame jframe;
public P005_GridLayout() {
jframe = new JFrame("表格布局");
jframe.setLayout(new GridLayout(3, 4));//表格布局,3行 4列
for (int i = 0; i <= 12; i++) {
jframe.add(new JButton(i+""));
}
jframe.setLocation(300, 200);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
jframe.pack();
jframe.setVisible(true);
}
public static void main(String[] args) {
new P005_GridLayout();
}
}
最后: 布局是一种灵活的东西。你可以一个布局里嵌套另外一个布局。
比如边界布局的窗口的中间,加入按表格布局的组件,表格布局里面是流式布局。
很多的复杂的界面,通过细分,都能拆分成常用布局的嵌套
java swing界面设计_java swing界面设计相关推荐
- java swing 获当前日期_Java图形界面Swing下日期控件
码农公社 210.net.cn 210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Java自学-图形界面 日期控件 两种Swing下的日期控件 DatePick ...
- java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)
本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...
- java窗口程序实例_Java Swing快速构建窗体应用程序
以前接触java感觉其在桌面开发上,总是不太方便,没有一个好的拖拽界面布局工具,可以快速构建窗体. 最近学习了一下NetBeans IDE 8.1,感觉其窗体设计工具还是很不错的 , 就尝试一下做了一 ...
- java登陆界面连接数据库_java 登陆界面怎么写,连接数据库后
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 界面是 package 界面类; import javax.jws.soap.SOAPBinding.Use; import javax.swing.JB ...
- java swing最小化_Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果)...
Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果) package swing; import java.awt.AWTException; import java ...
- java swing实现计算器_Java swing实现的计算器功能完整实例
本文实例讲述了Java swing实现的计算器功能.分享给大家供大家参考,具体如下: package awtDemo; import java.awt.*; import java.awt.event ...
- java swing事件机制_java SWing事件调用的两种机制
/** * java swing中事件调用的两种机制: * (一)响应机制 * (二)回调机制 */ package test; import java.awt.*; import java.awt. ...
- java记事本复制粘贴_Java Swing 如何实现记事本中“编辑”菜单下的 剪切,复制,粘贴,删除,全选 功能...
这篇文字将要学习以下知识点: 1.如何给JButton按钮添加鼠标点击事件监听器 #1.addMouseListener(MouseListener l) 给JButton添加一个鼠标点击监听器l ...
- java scrollpane 设置透明_java swing 之 JScrollPane(滚动面板)的使用
/** * java swing 之JScrollPane面板 * 在设置界面时,可能会遇到在一个较小的容器窗体中显示一个较大部分的内容,这时可以使用 * JScrollPane面板,JscrollP ...
- java登陆界面背景_Java登录界面的实现(注册、登录、背景图片)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.java * 作者:常轩 * 微信公众号:Worldh ...
最新文章
- UA MATH567 高维统计IV Lipschitz组合1 Lipschitz函数
- 干货!一文解决产品经理对UML的全部疑问
- 【转】汇编 代码段数据段堆区栈区
- tail实时监控日志qps
- iOS 开发者必不可少的 75 个工具
- 102. 二叉树的层序遍历 golang
- Win7和Vista移动设备正常弹出
- shell学习之常用bash内置变量
- oracle查询所有表字段属性_MybatisPlus基础篇学习笔记(四)------查询方法
- Ubuntu16.04 安装显卡驱动 cuda,cudnn
- python文本分割_python实现大文本文件分割
- golang json 转 map 切片 结构体
- 「图像处理」C#+AForge.Net+DlibDotNet实现人脸识别
- WinCam v2.0.0 Windows极简屏幕录像工具单文件版
- 怎样用计算机算出54188,计算机应用技术练习题.doc
- API接口安全设计方案(已实现)
- 基于Netty的RPC架构学习笔记(五):netty线程模型源码分析(二)
- Red Hat Linux9.0操作系统安装和配置入门
- Nautre综述:鸟枪法宏基因组-从取样到数据分析(2)2万字带你系统入门宏基因组实验和分析...
- 关于页面失去焦点时定时器乱序问题