展开全部

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界面设计相关推荐

  1. java swing 获当前日期_Java图形界面Swing下日期控件

    码农公社  210.net.cn  210是何含义?10月24日是程序员节,1024 =210.210既 210 之意. Java自学-图形界面 日期控件 两种Swing下的日期控件 DatePick ...

  2. java swing进度条_Java Swing创建自定义闪屏:在闪屏上添加Swing进度条控件(转)

    本文将讲解如何做一个类似MyEclipse启动画面的闪屏,为Java Swing应用程序增添魅力. 首先看一下效果图吧, 原理很简单,就是创建一个Dialog,Dialog有一个进度条和一个Label ...

  3. java窗口程序实例_Java Swing快速构建窗体应用程序

    以前接触java感觉其在桌面开发上,总是不太方便,没有一个好的拖拽界面布局工具,可以快速构建窗体. 最近学习了一下NetBeans IDE 8.1,感觉其窗体设计工具还是很不错的 , 就尝试一下做了一 ...

  4. java登陆界面连接数据库_java 登陆界面怎么写,连接数据库后

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 界面是 package 界面类; import javax.jws.soap.SOAPBinding.Use; import javax.swing.JB ...

  5. java swing最小化_Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果)...

    Java swing 窗口最小化到任务栏 点击右键显示菜单(复制代码即可运行查看效果) package swing; import java.awt.AWTException; import java ...

  6. java swing实现计算器_Java swing实现的计算器功能完整实例

    本文实例讲述了Java swing实现的计算器功能.分享给大家供大家参考,具体如下: package awtDemo; import java.awt.*; import java.awt.event ...

  7. java swing事件机制_java SWing事件调用的两种机制

    /** * java swing中事件调用的两种机制: * (一)响应机制 * (二)回调机制 */ package test; import java.awt.*; import java.awt. ...

  8. java记事本复制粘贴_Java Swing 如何实现记事本中“编辑”菜单下的 剪切,复制,粘贴,删除,全选 功能...

    这篇文字将要学习以下知识点: 1.如何给JButton按钮添加鼠标点击事件监听器 #1.addMouseListener(MouseListener l)  给JButton添加一个鼠标点击监听器l ...

  9. java scrollpane 设置透明_java swing 之 JScrollPane(滚动面板)的使用

    /** * java swing 之JScrollPane面板 * 在设置界面时,可能会遇到在一个较小的容器窗体中显示一个较大部分的内容,这时可以使用 * JScrollPane面板,JscrollP ...

  10. java登陆界面背景_Java登录界面的实现(注册、登录、背景图片)

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.java * 作者:常轩 * 微信公众号:Worldh ...

最新文章

  1. UA MATH567 高维统计IV Lipschitz组合1 Lipschitz函数
  2. 干货!一文解决产品经理对UML的全部疑问
  3. 【转】汇编 代码段数据段堆区栈区
  4. tail实时监控日志qps
  5. iOS 开发者必不可少的 75 个工具
  6. 102. 二叉树的层序遍历 golang
  7. Win7和Vista移动设备正常弹出
  8. shell学习之常用bash内置变量
  9. oracle查询所有表字段属性_MybatisPlus基础篇学习笔记(四)------查询方法
  10. Ubuntu16.04 安装显卡驱动 cuda,cudnn
  11. python文本分割_python实现大文本文件分割
  12. golang json 转 map 切片 结构体
  13. 「图像处理」C#+AForge.Net+DlibDotNet实现人脸识别
  14. WinCam v2.0.0 Windows极简屏幕录像工具单文件版
  15. 怎样用计算机算出54188,计算机应用技术练习题.doc
  16. API接口安全设计方案(已实现)
  17. 基于Netty的RPC架构学习笔记(五):netty线程模型源码分析(二)
  18. Red Hat Linux9.0操作系统安装和配置入门
  19. Nautre综述:鸟枪法宏基因组-从取样到数据分析(2)2万字带你系统入门宏基因组实验和分析...
  20. 关于页面失去焦点时定时器乱序问题

热门文章

  1. websocket断开重连解决方案,基于子慕大诗人博客修改 健壮强化版
  2. Image Signal Processor
  3. (转载)220v交流接触器自锁接线图另接热继电器
  4. centos 内网ip 设置_CentOS7 设置局域网固定IP
  5. 卡特彼勒牵手CBA联赛助力中国篮球发展
  6. Java加密知识体系
  7. Java游戏实验报告_Java实验报告(实验三)
  8. docker操作记录-6
  9. iOS13新增SceneDelegate文件适配
  10. RTCP丢包重传策略之NACK