java swing 总结_对Java 中Swing的小总结

最近把Swing里的内容稍微看了一下,Swing里的基本元素有:

1.容器

顶层容器

顶层容器常见的有两种:

I.窗体(JFrame),它可以直接出现在系统桌面上,其它组件必须直接或间接借助顶层容器才能显示出来。

II.对话框(JDialog),这个比较常见。

非顶层容器

非顶层容器既可以做容器,又可以做组件,如面板(JPanel)。

一般说来不直接将普通组件直接添加到顶层容器中,虽然可以这么做。而是把复杂的界面分割,将某些功能相近或位置靠近的组件放到一个非顶层容器中,这样可以更好的操作界面,也增强了可维护性。

利用非顶层容器可以很方便的搭建界面,并且代码清晰、难度较小。因为开发一个界面的一小部分还是比较简单的,代码也易于维护。

一般一个JPanel都是一个具有相同功能的子界面或一些相似组件的组合。这样当遇到相似的开发时就可以直接重用,避免了重复开发。

(以下关于嵌板部分是从网上得到的,没有试过它的用法,感觉应该挺重要的)

Swing中所有的组件都是放到容器中,主要的容器包括:JFrame,JPanel,JWindow,JDialog,JPanle。 JFrame是java的主框架,几乎所有的Java应用程序界面都是在主框架之中设计的。有些容器并非一层,而由几层嵌板组成,如:拆分嵌板 (JSplitPane),内容嵌板, 页签式嵌板(TabbedPane)等。

拆分嵌板:按指定的方向和方式拆分其内的两个子组件,记住一个拆分嵌板只能拆分两个子组件,如果想要拆分三个,大家自己先想一想办法。本节最后给出了答案。

内容嵌板: JFrame,Jwindow,Jdialog就是上面提到的有多层嵌板的容器,如果要在这些容器上面放置组件,必须放置在他们的内容嵌板(pane)上。我们通过函数getContentPane()可得到当前容器的内容嵌板。

页签式嵌板:这个嵌板如同卡片,在上面提供文件夹式的页签,当前只显示一页,如要进入下一页,只要点击上面的页签。

有些如JPanel是可以直接放置组件的容器。所以不需要使用嵌板。

2.普通组件

普通组件就是具有一定功能、但不担当容器的组件。

这类组件非常多,如标签(JLabel)、按钮(JButton)、文本框(JTextField)、文本域(JTextArea)等。

普通组件都有一些通用的方法,比较说setSize(),setBounds(),setVisible()等等。

Java Swing中处理各组件事件的一般步骤是:

1.新建一个组件(如JButton)。

2.将该组件添加到相应的面板(如JPanel)。

3.注册监听器以监听事件源产生的事件(如通过ActionListener来响应用户点击按钮)。

4.定义处理事件的方法(如在ActionListener中的actionPerformed中定义相应方法)。

以上步骤我们可以用多种方法实现。但人们通常用两种方法。第一种方法是只利用一个监听器以及多个if语句来决定是哪个组件产生的事件;第二种方法是使用多个内部类来响应不同组件产生的各种事件,其具体实现又分两种方式,一种是匿名内部类,一种是一般内部类。

利用一个监听器来处理事件的缺点是,当程序比较复杂时,需要一大串的if 语句来实现,程序代码较难阅读与维护。当然,如果处理的事件较少,这种方式比较简单。

而使用匿名内部类同样存在许多另外的问题。首先,根据组件在代码中被定义的不同位置,类的定义以及处理事件的代码将分散在程序的各个部分,不是集中在一块,同样不便于阅读与维护。各事件的处理全部由嵌套的程序块组成,视觉上很难定位程序代码。如果事件处理程序比较复杂,内部类中的代码将变得很长,你将找不到相应的组件定义位置。最后,当工具栏、菜单栏目等需要处理同样的用户行为时,该方法将使代码更难维护。

一般开发的时候,有一段代码是最常用的到的:

this.setTitle(String title);//设置标题

this.setBounds(int x,int y,int width,int height);//设置窗体的位置

this.setVisible(true);//设置窗体可见

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置窗体关闭按钮的作用

多做一些就能把这个给记住了...

PS:总结的有点堆零零碎碎,有些是从网上找来的资料,不过基本概括了最近学的Swing的基本内容,可能非常浅显,另从网上看到了一些材料,才发现自己对Swing的理解还很不够,Swing创造性的采用了MVC(Model View Controller) 模式,理解这种模式才能对Swing有一个比较深入的领悟,正是由于这个机制,才使得Swing并不像表面看起来的那么差劲,Swing其实很强大!但是要理解这个MVC,要加以灵活运用,目前为止,自己的水平远远不能达到,而且暂时也没有时间去整理了,准备在Java其它部分的知识先有个大概的了解之后,再进行进一步的研究吧,下面提供了关于Swing资料的下载,是我从网上整理了,对Swing的MVC框架的理解应该有很大的帮助~~

Java+Swing的技术总结 这篇文章涵盖了Java中j2me的Swing架构,很详细的总结。 立即下载

相关推荐

swing项目应用总结

NULL 博文链接:https://yixinhu.iteye.com/blog/1703660

java实验报告———JavaSwing编程.pdf

java实验报告———JavaSwing编程.pdf

Java swing 知识总结学习笔记

Java swing 知识总结学习笔记,全面总结了在Java学习中关于Swing的相关知识。

javaSwing学习总结

Swing Swing是GUI(图形用户界面)开发工具包,内容有很多,这里会分块编写,但在进阶篇中只编写Swing中的基本要素,包括容器、组件和布局等,更深入的内容这里就不介绍了。想深入学习的朋友们可查阅有关资料或图书,比如《Java Swing图形界面开发与案例详解》——清华大学出版社。 早期的AWT(抽象窗口工具包)组件开发的图形用户界面,要依赖本地系统,当把AWT组件开发的应用程序移植到其...

赤沐的博客 1480

JavaSwing学习总结

1      .简介 Swing是一个用于开发Java应用程序用户界面的开发工具包,是由纯Java实现的。以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格,不依赖操作系统的支持,这是它与AWT组件的最大区别。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 2      .Swing的层次结构 3 

进击小青年的博客 1万+

java swing总结_java---Swing界面开发总结

一、java的图形界面1.awt java.awtjdk1.4之前推出的图形界面,用c/c++编写,跨平台性不好2.swing javax.swingjdk1.4时推出的图形界面,跨平台性好二、常用的组件1.容器组件JFrame 窗体类 最顶级的容器(默认布局为边框布局,不能自己互相添加)JPanel 面板类 最灵活的容器(可以自己互相添加)2.元素组件JLabel 标签类...

weixin_36050604的博客 316

JavaSwing编程总结

都2021年了,还有人用JavaSwing?这只是我的一个爱好,我喜欢做界面开发,但是又只有Java还学的不错,大部分Java书籍中对JavaSwing介绍的都比较一般,我便找了《Java2图形设计卷IISwing》介绍的还算不错,正好中秋节有点时间,学习整理了一下,整本书约1000页,肯定没有全部记录,记录了一下我感觉比较好玩的,若你热爱JavaGUI编程,全部看下来一定有所收获 Swing组件类以J开头 Swing设置JFrame风格(必须在显示前调用) // Metal风格 (默认) String l

weixin_44598449的博客 1822

java swing总结,Swing小结

Swing总结Swing登陆界面开发一、Java的图形界面SwingJava图形界面提供各种组件,像菜单栏、输入框、按钮等等。Swing调用组件基本格式:javax.swing.XXXX二、常用的组件1)容器组件:(1)窗体类JFrame例如: javax.swing.JFrame frame=new javax.swing.JFrame();还可以这样 JFrame frame=new J...

weixin_39668199的博客 406

Java——Swing详解

目录Swing1、Swing和MVC设计模式2、布局管理2.1、布局管理器2.2、边框布局2.3、网格布局3、文本输入3.1、文本域3.2、标签和标签组件3.3、密码域3.4、文本区3.5、滚动窗格4、选择组件4.1、复选框4.2、单选按钮4.3、边框4.4、组合框4.5、滑动条5、菜单5.1、菜单构建5.2、菜单项中的图标5.3、复选框和单选按钮菜单项5.4、弹出菜单5.5、键盘助记符和加速器5.6、启用和禁用菜单项5.7、工具条5.8、工具提示6、复杂的布局管理6.1、网格包布局1)、gridx、gri

吴声子夜歌的博客 1万+

Java swing】如何配置Java swing主题

Java swing】如何配置Java swing主题主题种类Metal风格 (默认)Windows风格Windows Classic风格Motif风格Mac风格 (需要在相关的操作系统上方可实现)GTK风格 (需要在相关的操作系统上方可实现)可跨平台的默认风格当前系统的风格简单实现代码示例代码 主题种类 Metal风格 (默认) String lookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel"; UIManager.setLookAndFee(

猫巳的博客 1608

java swing 控件_Java Swing组件

一、 java swing 组件技术简介1.swing的特性l 是AWT的扩展,swing比AWT提供了更多的组件和外观l 它是纯java代码编写(除了JFrame、JDialog、JApplet),因此与平台无关2.AWT的缺点组件少而且是本地代码实现(无法实现跨平台)3.swing 和 AWT相比一个重要的的改进在于swing把一个组件的处理分为图形部分和数据处理部分(MVC...

weixin_28758189的博客 925

swing java_Java Swing 介绍

Swing 是一个为Java设计的GUI工具包。SwingJAVA基础类的一部分。Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而...

weixin_39562606的博客 437

java swing fx_JavaSwing程序是如何调用FX代码

当我们完成了MyScene类后,可以开始写java的主程序了,这是个标准的Swing程序中调用JavaFX代码如下:package swingtest;import java.awt.*;import javax.swing.*;import org.jfxtras.scene.SceNEToJComponent;public class JavaFXToSwingTest extends JFr...

weixin_34644072的博客 529

Java——Swing界面,接口和事件

Swing界面,接口和事件

seeyou__的博客 5420

java 什么是swing_Java-Swing是什么?

我很喜欢一个有背景动画特效的(登录或者注册等模板的)透明页面,能给我自身一种积极上进的震撼力希望我能慢慢的理解swing(透明的小模块)到底怎么用Swing 类库结构Swing 组件都采用 MVC(Model-View-Controller,即模型-视图-控制器)的设计,实现 GUI 组件的显示逻辑和数据逻辑的分离,从而允许程序员自定义 Render 来改变 GUI 组件的显示外观,以提供更多的灵...

weixin_39927214的博客 193

Java Swing到Android

Swing开发人员的角度来看,这是Android上10,000英尺的简短概述。 首先,如果您从Swing进入Android,那么对J2EE开发人员来说,这是一个很大的优势。 现在,我意识到Android实际上并没有AWT / Swing API,但这并不重要,因为它中的通用前端/事件驱动机制非常接近Swing,因此您会发现它很容易。 现在,Android确实比Swing更加依赖XML d...

1463

java swing流程图_Java Swing 介绍

Swing 是一个为Java设计的GUI工具包。SwingJAVA基础类的一部分。Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表。Swing提供许多比AWT更好的屏幕显示元素。它们用纯Java写成,所以同Java本身一样可以跨平台运行,这一点不像AWT。它们是JFC的一部分。它们支持可更换的面板和主题(各种操作系统默认的特有主题),然而不是真的使用原生平台提供的设备,而...

weixin_39851279的博客 672

什么是java swing_Java干货:解读什么是swing

swingjava GUI应用程序,也就是java做的桌面应用。运行swing程序要求用户电脑上有java环境,这一点不太现实也不方便。现在的java主要以web方向为主,做移动应用和网站开发,分布式、多线程、高并发等都是java程序员发展的方向。虽然企业开发中用到的不多,事实上在我十几年的开发生涯中没有用到过,我的朋友也没有做swing的。但也不能说学习它就没有用。比如swing中的控件,如表...

weixin_30240263的博客 3751
上一篇: java 采集程序_Java实现一个小说采集程序的简单实例
下一篇: wordcount.java_hadoop 的wordcount java实验
liubotian1995
博客等级 码龄7年 26粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值