——Swing 是 Java 平台的 UI 。


UI 组件简介

在开始学习 Swing 之前,必须回答针对真正初学者的一个问题:什么是 UI?初学者的答案是“用户界面”。但是因为本教程的目标是要保证您不再只是个初学者,所以我们需要比这个定义更高级的定义。

所以,我再次提出这个问题:什么是 UI?您可能把它定义成您按下的按钮、打字的地址栏 、打开和关闭的窗口,等等,这些都是 UI 的元素,但是除了在屏幕上看到的这些之外,还有更多都是 UI 元素。比如鼠标、键盘、音量、屏幕颜色、使用的字体,以及一个对象相对于另一个对象的位置,这些都包含在 UI 之中。实际上,在计算机和用户的交互之中扮演角色的任何对象都是 UI 的组成部分。这看起来足够简单,但是您应当惊讶的是,有许多人和大型公司已经为它努力了很多年。实际上,现在有的大学专业的惟一课程就是研究这种交互。

Swing 的角色

Swing 是 Java 平台的 UI —— 它充当处理用户和计算机之间全部交互的软件。它实际上充当用户和计算机内部之间的中间人。Swing 到底是如何做这项工作的呢?它提供了处理前面一节中描述的 UI 各方面内容的机制:

键盘:Swing 提供了捕捉用户输入的方法。
    颜色:Swing 提供改变在屏幕上看到的颜色的方法。
    打字的地址栏:Swing 提供了文本组件,处理所有普通任务。
    音量:Swing 不太擅长。

无论如何,Swing 为您提供了创建自己的 UI 所需要的所有工具

MVC

Swing 甚至走得更远一步,在基本的 UI 原则之上又放上了一个公共的设计模式。这个设计模式叫做模型-视图-控制器(Model-View-Controller,MVC),它试图“把角色分开”。MVC 让负责显示的代码、处理数据的代码、对交互进行响应并驱动变化的代码彼此分离。

有点迷惑?如果我为这个设计模式提供一个现实世界的非技术性示例,它就比较容易了。请想像一次时装秀。把秀场当成 UI,假设服装就是数据,是展示给用户的计算机信息。现在,假设这次时装秀中只有一个人。这个人设计服装、修改服装、同时还在 T 台上展示这些服装。这看起来可不是一个构造良好的或有效率的设计。

现在,假设同样的时装秀采用 MVC 设计模式。这次不是一个人做每件事,而是将角色分开。时装模特(不要与 MVC 缩写中的模型混淆)展示服装。他们扮演的角色是视图。他们知道展示服装(数据的)适当方法,但是根本不知道如何创建或设计服装。另一方面,时装设计师充当控制器。时装设计师对于如何在 T 台上走秀没有概念,但他能创建和操纵服装。时装模特和设计师都能独立地处理服装,但都有自己的专业领域。

这就是 MVC 设计模式背后的概念:让 UI 的每个方面处理它擅长的工作。如果您仍然不明白,那么教程后面的示例有望消除您的迷惑 —— 但是在您继续进行的时候,请记住基本的原则:用可视组件显示数据,同时让其他类操纵数据。

JComponent

Swing 的整个可视组件库的基础构造块是 JComponent。它是所有组件的父类。它是一个抽象类,所以不能创建 JComponent,但是作为类层次结构的结果,从字面意义来说它包含了数百个函数,Swing 中的每个组件都可以使用这些函数。显然,有些概念要比其他概念重要,所以对于本教程,需要学习的重要的东西是:

JComponent 不仅是 Swing 组件的基类,还是定制组件的基类(有关的更多信息在“中级 Swing”教程中)。

它为所有组件提供了绘制的基础架构 —— 一些方便进行组件定制的东西(同样,在“中级 Swing”中,有关于这个主题的更多信息)。

它知道如何处理所有的键盘按键。所以类只需要侦听特定的键。

它包含 add() 方法,可以添加其他 JComponent。换种方式来看,可以把任意 Swing 组件添加到其他任何 Swing 组件,从而构造嵌套组件(例如,JPanel 包含 JButton,甚至包含一些古怪的组合,例如 JMenu 包含 JButton)。

swing入门教程(一) swing简介相关推荐

  1. java swing入门教程_JAVA swing初级教程(四)

    附加的swing小部件(下) JOptionPane JOptionPane 是在 Swing中类似"快捷方式"的东西.通常,作为UI开发人员,您需要向用户呈现快速信息,让用户了解 ...

  2. java swing入门教程_JAVA swing初级教程(二)

    简单的swing小部件 JLabel组件 Swing 库中最基础的组件是JLabel.它所做的正是您所期望的:呆在那儿,看起来很漂亮,描述其他组件.下图显示了的JLabel实际应用: JLabel 不 ...

  3. Java swing入门教程(转载)

    swing入门教程(一) swing简介 UI 组件简介 在开始学习 Swing 之前,必须回答针对真正初学者的一个问题:什么是 UI?初学者的答案是"用户界面".但是因为本教程的 ...

  4. swing入门教程(二) 简单的swing小部件

    -- 就像所有的"x 入门"教程一样,本教程也包含必不可少的 HelloWorld 演示.但这个示例不仅对观察 Swing 应用程序如何工作有用,还对确保设置正确很有用.一旦使这个 ...

  5. 【Swing入门教程】一步一步做Netbeans(1):类Netbeans的主界面

    这仅仅是个入门教程,当你认为自己不是处于牛A和牛C之间时倒可以看看:我也不会蛋疼得去做一个Netbeans,仅仅是处出于对Netbeans的钟爱和对Swing的探讨而拿来的练手. 这里只打算实现Net ...

  6. [转]【Unity3D入门教程】Unity3D简介、安装和程序发布

    <Unity3D入门教程>会带领零基础的初学者,一步步学会使用Unity3D来开发简单的应用程序,走近游戏开发的世界.本系列教程虽然不会面面俱到地深入到全部的知识点,但是会涉及到所有入门阶 ...

  7. swing入门教程(五) Swing概念

    布局.模型和事件 既然您已经知道了大多数(肯定不是全部)可以用来制作 UI 的组件,那么就必须实际用它们做些什么.您不能只是随意地把它们放在屏幕上,然后就指望它们立即就能工作.您必须把它们放在特定的点 ...

  8. 【Protocol Buffer】Protocol Buffer入门教程(一):简介和安装

    00. 目录 文章目录 00. 目录 01. Protocol Buffer简介 02. Protocol Buffer优缺点 03. Protocol Buffer安装 04. Protocol B ...

  9. protobuf入门教程(一):简介和安装

    1.1 简介 1.1.1 什么是protobuf protobuf也叫protocol buffer是google 的一种数据交换的格式,它独立于语言,独立于平台.google 提供了多种语言的实现: ...

最新文章

  1. iOS自动化测试之Appium的安装和使用
  2. MATLAB观察系统响应,基于MATLAB的系统的时域响应分析精选.doc
  3. 459. Repeated Substring Pattern 重复的子字符串
  4. python AES对称加密文件、解密文件
  5. 异常关闭MyEclipse 8.6后,不能重启
  6. xmind试用模式会过期吗_汽车可以一直用s档吗?运动模式到底会不会伤车?
  7. java线程--object.waitobject.notify
  8. db2查询字段备注_SQL基础7:SQLSERVER、ORACLE、DB2中SQL语句查询表字段名、注释、字段类型...
  9. python数据分析的概念_Python数据分析入门篇
  10. python qq协议_利用webqq协议使用python登录qq发消息源码参考
  11. zune自搭虚拟服务器离线升级,Zune 30g 购买/使用 个人经验贴,希望可以帮到有需要的烧友~...
  12. Webstorm如何下载插件
  13. 计算机键盘怎么换键,电脑键盘快捷键怎么更改
  14. java毕业设计餐饮类网站Mybatis+系统+数据库+调试部署
  15. 视频:老外演示如何做康奈尔笔记
  16. ffmpeg linux 升级_linux系统部署ffmpeg视频转码环境及使用方法 | linux系统运维
  17. android kl文件编辑,Android手机固件的简单修改教程
  18. 解除Windows 10休眠时自动唤醒设置
  19. 微信小程序小型按钮内文字布局变形
  20. 1Tb 硬盘重做系统无法启动修复

热门文章

  1. 苹果cms如何手动更换主题
  2. Linux进程中Dec04什么意思,用last命令时会总显示些crash,
  3. 数据分析_常见的业务分析指标及模型介绍
  4. dpkg软件包管理工具
  5. Nancy之区域和分部视图的使用
  6. “请保持清醒:开源是和世界同步的绝佳机会!”
  7. Pandas | 数据融合与拼接(Merge Concat)
  8. 医疗器械产品 EMC 测试与整改思路
  9. 美式看跌期权的二叉树定价
  10. Android 广告包使用之字节穿山甲介绍