Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。

工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event

创建图形界面步骤

(1)导入Swing包
(2)选择界面风格
(3)设置顶层容器
(4)设置按钮和标签
(5)将组件放到容器上
(6)为组件增加边框
(7)处理事件
(8)辅助技术支持
下面语句导入Swing包
import javax.swing.*;
大部分Swing程序用到了AWT的基础底层结构和事件模型,因此需要导入两个包:
import java.awt.*;
import java.awt.event.*;
如果图形界面中包括了事件处理,那么还需要导入事件处理包:
import javax.swing.event.*;
选择界面风格
Swing允许选择程序的图形界面风格常用的有java风格,windows风格等
下面的代码用于选择图形界面风格,这里选择的是跨平台的Java界面风格。
try { UIManager.setLookAndFeel(
UIManager.getCrossPlatformLookAndFeelClassName( )); }
catch (Exception e) { }
设置顶层容器
图形界面至少要有一个顶级Swing容器
顶级Swing容器为其它Swing组件在屏幕上的绘制和处理事件提供支持
常用的顶级容器:
JFrame(框架):表示主程序窗口
JDialog(对话框):每个JDialog对象表示一个对话框,对话框属于二级窗口
JApplet(小程序):在浏览器内显示一个小程序界面
一个框架包括边界、菜单栏、工具栏、状态栏,以及中间占主要部分的窗格
窗格也可以看作是一种面板,但它是框架的一个组成部分
组件不会直接放到框架上,而是放在若干个面板上,这些面板再放到窗格上
用框架对象的getContentPane()函数来获得窗格,再调用窗格的add()函数放置面板
public static void main(String[ ]args){JFrame frame=new JFrame("SwingApplication");
JPanel panel1=new JPanel();
frame.getContentPane().add(panel1,BorderLayout.CENTER);
......//

设置其他组件

frame.pack();frame.setVisible(true);}

模式使用

关键是java.awt.*里面的两个与显示设备有关的类:GraphicsEnvironment和GraphicsDevice。
GraphicsEnvironment为Java应用程序提供了特定平台的 GraphicsDevice对象和 Font 对象集合。这些GraphicsDevice可以是各种本机和远端机器的资源,如屏幕、打印机或者是Image Buffer,甚至是Graphics2D绘图方法的目标对象。
而GraphicsDevice就是指特定的图形环境了,如屏幕和打印设备等。这样,我们就可以用GraphicsDevice来操纵屏幕了。GraphicsDevice提供的setFullScreenWindow()方法就是设置全屏幕用的

事件处理

监听器:ActionListener
方 法:actionPerformed
事 件:ActionEvent
事件产生原因:点击按钮,在列表框中选择内容,在文本框中点回车,计时器到期
监听器:AdjustmentListener
方 法:adjustmentValueChanged
事 件:AdjustmentEvent
事件产生原因:滚动条的滚动
监听器:ItemListener
方 法:itemStateChanged
事 件:ItemEvent

事件产生原因:各种按钮的点击,列表框的选择

监听器:FocusListener
方 法:focusGained、focusLost
事 件:FocusEvent

事件产生原因:各种组件的焦点变化

监听器:KeyListener
方 法:keyPressed、keyReleased、keyTyped
事 件:KeyEvent

事件产生原因:在各种组件上敲击键盘

监听器:MouseListener
方 法:mouseClicked、mousePressed、mouseReleased
mouseEntered、mouseExited
事 件:MouseEvent

事件产生原因:在任何组件上点击鼠标、将光标移动进来或出去

监听器:MouseMotionListener
方 法:mouseDragged、mouseMoved
事 件:MouseEvent
事件产生原因:在任何组件上移动鼠标
监听器:MouseWheelListener
方 法:mouseWheelMoved
事 件:MouseWheelEvent

事件产生原因:在任何组件上滚动鼠标中键

监听器:WindowListener
方 法:windowOpened、windowClosing、windowClosed、windowIconified
windowDeiconified、windowActivated、windowDeactivated
事 件:WindowEvent
事件产生原因:窗口发生变化
监听器:WindowFocusListener
方 法:windowGainedFocus、windowLostFocus
事 件:WindowEvent
事件产生原因:窗口得到或失去焦点
监听器:WindowstateListener
方 法:WindowstateChanged
事 件:WindowEvent
事件产生原因:窗口状态改变

什么是JAVA SWING相关推荐

  1. Java项目:潜艇大战项目(java+swing)

    源码获取:博客首页 "资源" 里下载! 功能简介: Java swing实现的一款小游戏潜艇大战的项目源码 游戏界面: @SuppressWarnings({ "unus ...

  2. Java项目:日历万年历(java+swing)

    源码获取:博客首页 "资源" 里下载! 功能简介: 万年历 启动类: public class CalendarMainClass { public static void mai ...

  3. java布局工具,Java Swing:库,工具,布局管理器

    What libraries/tools do you have in your Java Swing Tool set? XUL Layout Managers Packagers/Installe ...

  4. java swing 文件选择,设置默认文件选择路径,桌面路径

    在上传文件,选择文件的时候,往往会遇到路径选择的问题,比如,一般上传的默认路径是 我的文档,而我们恰好需要默认在桌面,那怎么办呢? 下面的内容也许会帮到你! 首先,看java swing 方面,使用 ...

  5. java swing原理浅析

    2019独角兽企业重金招聘Python工程师标准>>> 没有接触过ui编程的人在学习ui编程时可能会对ui组件和各组件间的关系有点混乱,下面笔者就java swing的原理做下简单分 ...

  6. 使用javaHelp制作java swing帮助文档

    使用javaHelp制作java swing帮助文档 最近在做一个Swing项目,项目接近尾声,需要做最后的帮助系统了.就想到了javaHelp.JavaHelp是sun退出的编写帮助系统的一个类库, ...

  7. java swing 链接_JAVA中Jtable标签设置超级链接:基于Java Swing的超链接标签和超链接按钮的实现...

    希望在一个标签上设置超级链接,找到了如下的一种方法: 1.要解决的问题 基于Java Swing的超链接实现 2.自定义一个超链接标签控件[LinkLabel] 2.1.完整代码如下: public ...

  8. 我应该避免在Java Swing中使用set(Preferred | Maximum | Minimum)Size方法吗?

    本文翻译自:Should I avoid the use of set(Preferred|Maximum|Minimum)Size methods in Java Swing? Several ti ...

  9. 2020 java swing jtable 合并_java学生管理系统(界面版)

    运行截图 ​ 项目说明: 本系统界面我个人就从简设计了,本来打算使用windowbuilder插件设计的,可想到使用windowbuilder插件之后导致代码冗余,会影响到代码可读性,可能对小白不友好 ...

  10. java swing开源组件_Squareness

    相关开源项目 Napkin look & feel:The Napkin Look & Feel is a pluggable Java look and feel that look ...

最新文章

  1. 在Ubuntu 16.04.1 LTS上安装XnView Multi Platform图片浏览器0.83
  2. Several ports (8005, 8080, 8009) required by Tomcat v5.5 Server at localhost are already in use.....
  3. python函数教程:global 和 nonlocal的详细用法
  4. 【高斯消元】bzoj1013 [JSOI2008]球形空间产生器sphere
  5. CSDN数据泄密凸显数据安全黑洞 飞客提示注意数据库保护
  6. 笔记本关闭触摸板——解决无法关闭触摸板问题
  7. Win下的驱动备份与还原
  8. Excel - 单元格设置斜线 并 添加文字
  9. 【jpa】简介和项目生成、API-初级入门
  10. ntp服务器授时原理,NTP原理简介
  11. ibm服务器 产品型号对应表,产品线最全 IBM中小企业服务器选型指南
  12. Unknown column ‘gender‘ in ‘field list‘
  13. Alpha冲刺-第三天
  14. 如何拍背景虚化的照片_3大方法,教你拍出虚化背景的拍摄技巧效果
  15. 计算机网络——HTTP协议原理
  16. 提取NTLDR文件,分解Osloader.exe;pe文件找e_lfanew、IMAGE_EXPORT_DIRECTORY-AddressOfFunctions
  17. 卡巴使用过程中得发现。
  18. 【NLP】知乎文本分类比赛第一名笔记
  19. 百度安全研究成果亮相 NDSS 2022
  20. 申银万国:A股估值已经较高 下半年二十大牛股

热门文章

  1. WPF 鼠标滚轮对图片的缩放
  2. hadoop-bigdata-v2.2 版本shell脚本一键部署 master、slaver1、slaver2三个节点源代码.
  3. Unity ML-Agents 从零训练你自己的AI!:一、环境配置
  4. css 设置文本字体间距及首行缩进
  5. dw html段落首行缩进,使用Dreamweaver8实现文本首行缩进
  6. 程序员的爱情最纯洁?
  7. 三维重建之结构光编码方案研究
  8. 优雅草开源系统-YYC优雅草蜻蜓Q系统前端文件目录说明-----搭配后端
  9. python模拟实现打印输出进销管理系统中的每月销售明细
  10. 【Android开发经验】Android相关问题的好文章整理——温故而知新,可以为师矣