java里的swing教程
javaswing jlist组件的基本用法
javaswing jlist组件的基本用法JList是JavaSwing库中的一个组件,它用于显示一个列表的数据。
在JavaSwing中,JList允许用户选择列表中的项目。
以下是如何使用JList组件的基本步骤:一、引入必要的库在开始使用JList之前,我们需要引入必要的库。
首先,需要引入JavaSwing库。
可以在项目中直接添加JavaSwing库,或者通过Maven等构建工具添加。
```javaimportjavax.swing.*;```二、创建JList对象创建一个JList对象,需要指定要显示的数据源。
数据源可以是数组、列表或其他集合。
```javaJList<String>list=newJList<>(newString[]{"Item1","Item2","Item3"});```三、设置列表样式可以使用多种方式来设置列表样式,例如背景颜色、字体等。
可以使用以下方法来设置列表样式:```javalist.setBackground(Color.WHITE);//设置背景颜色为白色list.setFont(newFont("Arial",Font.BOLD,14));//设置字体为粗体,大小为14```四、添加到容器中可以将JList对象添加到JFrame、JPanel等容器中,以便将其显示出来。
可以使用以下代码将JList对象添加到容器中:```javaJFrameframe=newJFrame("JListExample");frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.add(newJScrollPane(list));//将JList对象添加到滚动面板中,以便查看大列表frame.pack();frame.setVisible(true);```五、使用addListSelectionListener监听器监听列表选择事件可以使用addListSelectionListener方法来监听列表选择事件。
编写swing程序的主要步骤
编写swing程序的主要步骤好的,要使用 Java Swing 编写图形用户界面 (GUI) 应用程序,可以按照以下主要步骤进行操作:1. 设计用户界面:首先,需要使用 Swing 组件设计应用程序的用户界面。
这可以通过使用 Java 的可视化设计工具,如 NetBeans IDE 或 Eclipse IDE 中的 Swing 设计器来完成。
这些工具提供了一个图形化界面,可以通过拖放和调整组件的大小和位置来创建用户界面。
2. 创建组件:在设计用户界面后,可以使用 Java 代码创建这些组件。
这可以通过扩展 Swing 类并创建组件对象来完成。
例如,可以扩展 JFrame 类创建一个窗口,扩展JTextField 类创建一个文本框,扩展 JButton 类创建一个按钮等。
3. 设置组件属性:创建组件后,可以使用 Java 代码设置它们的属性,例如文本、颜色、大小、位置等。
这可以通过调用组件的相应方法来完成。
4. 添加事件监听器:为了使应用程序对用户的交互做出反应,需要为组件添加事件监听器。
例如,如果需要在按钮被点击时执行某个操作,可以为按钮添加一个ActionListener。
5. 组织组件层次结构:在 Swing 中,组件是按照层次结构组织的。
父组件可以包含子组件,子组件可以包含孙子组件等。
需要确保组件的层次结构正确,以便正确显示和处理事件。
6. 创建窗口:最后,需要创建一个包含所有组件的窗口。
这可以通过创建一个 JFrame 对象并将其设置为可见来完成。
7. 运行应用程序:完成应用程序的编写后,可以使用 Java 编译器将其编译为可执行文件,并在 Java 虚拟机上运行。
这是使用 Java Swing 编写应用程序的基本步骤。
需要注意的是,Swing 是一个庞大而复杂的 API,需要花费时间和精力来学习和掌握。
java_swing_入门教程
Swing 甚至走得更远一步,在基本的UI 原则之上又放上了一个公共的设计模式。
这个设计模式叫做模型-视图-控制器(Model-View-Controller,MVC),它试图“把角色分开”。
MVC 让负责显示的代码、处理数据的代码、对交互进行响应并驱动变化的代码彼此分离。
JComponentSwing 的整个可视组件库的基础构造块是JComponent。
它是所有组件的父类。
它是一个抽象类,所以不能创建JComponent,但是作为类层次结构的结果,从字面意义来说它包含了数百个函数,Swing 中的每个组件都可以使用这些函数。
显然,有些概念要比其他概念重要,所以对于本教程,需要学习的重要的东西是:∙JComponent 不仅是Swing 组件的基类,还是定制组件的基类(有关的更多信息在“中级Swing”教程中)。
∙它为所有组件提供了绘制的基础架构——一些方便进行组件定制的东西(同样,在“中级Swing”中,有关于这个主题的更多信息)。
∙它知道如何处理所有的键盘按键。
所以类只需要侦听特定的键。
∙它包含add() 方法,可以添加其他JComponent。
换种方式来看,可以把任意Swing 组件添加到其他任何Swing 组件,从而构造嵌套组件(例如,JPanel 包含JButton,甚至包含一些古怪的组合,例如JMenu 包含JButton)。
简单的swing小部件Swing 库中最基础的组件是JLabel。
它所做的正是您所期望的:呆在那儿,看起来很漂亮,描述其他组件。
下图显示了的JLabel 实际应用:JLabel不太吸引人,但是仍然有用。
实际上,在整个应用程序中,不仅把JLabel 用作文本描述,还将它用作图片描述。
每当在Swing 应用程序中看到图片的时候,它就有可能是JLabel。
JLabel 对于Swing 初学者来说没有许多意料之外的方法。
基本的方法包括设置文本、图片、对齐以及标签描述的其他组件:∙get/setText():获取/设置标签的文本。
javaswing实现数据显示的逻辑
javaswing实现数据显示的逻辑
要使用Java Swing来实现数据显示的逻辑,可以按照以下步骤进行:
1. 创建一个继承自JFrame的主窗口类,作为应用的主界面。
2. 在主窗口类中添加一个JTable组件,用来显示数据。
3. 创建一个继承自AbstractTableModel的数据模型类,用来管理表格中的数据。
4. 在数据模型类中实现必要的方法,如获取表格的行数、列数、单元格数值等。
5. 在主窗口类中实例化数据模型类,并将其设置给JTable组件。
6. 从数据源获取数据,并通过数据模型类的方法添加到表格中。
7. 可以添加其他的Swing组件,如按钮、文本框等,来实现数据的添加、删除、修改等操作。
8. 实现相应的事件监听器,以响应用户的操作。
例如,点击按钮时,执行相应的添加、删除、修改数据的操作。
9. 使用布局管理器来控制组件的布局。
可以选择合适的布局管理器来满足UI设计的需求。
10. 最后,调用setVisible(true)方法将主窗口显示出来。
这样,就可以使用Java Swing实现数据显示的逻辑了。
根据具体的需求和情况,可以根据以上步骤进行适当的修改和扩展。
Swing编程
UIManager.put(key, fontRes);
} //调用方法 Font f=new Font("宋体", Font.PLAIN, 12); Comm.initGlobalFontSetting(f);
任务1:带菜单与工具条的窗体
• 6、设置菜单图标
m1.setIcon(new ImageIcon("images/png/m1.png")) //m1可以是JMenu,也可以是JMenuItem
Jaห้องสมุดไป่ตู้a程序设计-Swing编程
3592223477@
适用于抽象及相关类别演示
教学目的和要求
1、掌握Java Swing编程中JFrame的外观设置; 2、掌握菜单栏与工具栏的设置 3、掌握劢作事件及监听处理 4、掌握Java Swing编程代码的规划化
任务1:带菜单与工具条的窗体
任务1:带菜单与工具条的窗体
• 9、菜单和工具条中按钮如何监听事件处理
public class FrmMainDemo extends JFrame implements
ActionListener {
… m11.addActionListener(this); //m11为一个JMenuItem
btn1.addActionListener(this); //btn1为一个JButton
任务1:带菜单与工具条的窗体
• 8、增加菜单和工具条中按钮的事件处理 • 在Swing的事件处理中,可以使用ActionListener接口处理按钮 和菜单的劢作事件。此接口只定义了一个方法。 • Void actionPerformed(ActionEvent e)
• 为了简化我们的代码,可以让我们定义的JFrame类实现此接口
第十二章.swing基础
Slide 19 of 44
边框布局介绍
边框布局是通过BorderLayout类创建的。BorderLayout类具有两个构造器, 一个是无参构造器,另一个是指定控件间间距的构造器,通常使用无参构造 器来创建边框布局管理器。 在前面将控件添加到容器中都是通过add方法,将控件作为add方法的参数来 进行添加的。但是在向边框布局容器中添加控件时,这样是不完全的。在向 边框布局容器中添加控件是使用具有两个参数的add方法。其中第一个参数表 示要添加的控件,第二个参数表示要添加到边框布局中的哪一个位置。边框 布局的位置表示是通过常量来表示的,具体常量如表所示。
Slide 1 of 44
JFrame窗口类
在Swing程序中,窗口是一个容器,在该容器中可以放其他一些组件。学习 JFrame窗口类是学习其他组件的基础。在Swing程序中创建窗口可以使用继承 JFrame类来完成。 setResizable(false);//设置窗口不能被调整大小 提示:在JFrame窗口类中还有一个setUndecorated方法,使用该方法可以将 窗体的边框和标题栏去掉
Slide 4 of 44
JPanel面板类简介
JPanel面板类是一个非顶级容器,使用JPanel面板类可以搭建一个子界面。 JPanel面板类同样具有四种构造器,最常用的仍然是无参构造器。使用有参 构造器可以在初始时设置面板采用什么布局管理器和是否使用双缓冲。 JPanel面板类本身没有特殊功能,它的作用就是作为非顶级容器来添加普通 控件,搭建子界面。所以JPanel面板类的方法也是很少很简单的。首先 JPanel面板类具有一个添加控件的add方法,使用该方法能够将普通控件添加 到面板中。getHeight方法和getWidth方法分别是返回当前面板的高度和宽度。 提示:JPanel面板类还有一个setToolTipText方法,该方法具有一个字符串 参数,该方法的作用主要是当鼠标指针停留在面板上时显示文本,字符串内 容就是要显示的内容。
Java swing布局详解(附示例图)
当选择使用JPanel和顶层容器的content pane时,需要考虑布局管理。
JPanel缺省是初始化一个FlowLayout,而content pane缺省是初始化一个BorderLayout。
下面将分别介绍几种最常用的布局管理器:FlowLayout、BorderLayout、BoxLayout、CardLayout、GridLayout和GridBagLayout。
代码演示每一个布局管理器都会有一个代码演示,xxxLayoutDemo.java(见附件)。
这些文件主要有三个方法组成:addComponentsToPane()提供布局逻辑(依据不同的布局管理器和UI内容)。
Java代码1public static void addComponentsToPane(Container pane) {。
}2/**3*createAndShowGUI()实例化一个JFrame,通过它的ContentPane加载布局逻辑内容。
4*/5private static void createAndShowGUI() {6// Create and set up the window.7JFrame frame = new JFrame("FlowLayoutDemo");8frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);9// Set up the content pane.10addComponentsToPane(frame.getContentPane());11// Display the window.12frame.pack();13frame.setVisible(true);14}15//main()程序入口,单独起一个线程,实例化UI。
16public static void main(String[] args) {17javax.swing.SwingUtilities.invokeLater(new Runnable() {18public void run() {19createAndShowGUI();20}21});22}FlowLayoutFlowLayout类是最简单的布局管理器。
SWING教程
javaswing教程:JAVA教程 第 7讲 Swing用户界面设计疯狂代码 / ĵ:http://Java/Article51917.htmlD X j`/^@7.1 Swing介绍JAVA中文站社区门户 G2m2`wx1BV&A!]v;?-DB7.1.1 介绍Len}w$tJAVA中文站社区门户:w8|@}#T7J2J 第 5讲中我们学习了AWTAWT是Swing基础Swing产生主要原因就是AWT不能满足图形化用户界面发展需要os7Wg5X7C)OAWT设计初衷是支持开发小应用简单用户界面例如AWT缺少剪贴板、打印支持、键盘导航等特性而且原来AWT甚至不包括弹出式菜单或滚动窗格等基本元素B-Jq#t} }~%Py,wJAVA中文站社区门户;Q*}~VP.F\F~S 此外AWT还存在着严重缺陷人们使AWT适应基于继承、具有很大伸缩性事件模型基于同位体体系结构也成为其致命弱点JAVA中文站社区门户%SEm0uKvXv;yTu*R/Mp 随着发展需要Swing出现了Swing组件几乎都是轻量组件和重量组件相比没有本地对等组件不像重量组件要在它们自己本地不透明窗体中绘制轻量组件在它们重量组件窗口中绘制JAVA中文站社区门户h3r z/I,]:O`JAVA中文站社区门户o*pDnO 这讲我们讲下基本Swing组件使用思路方法和使用Swing组件创建用户界面初步思路方法w]'~5L#d7^4aJ\~X Bh^?sh)so Swing是由100%纯Java实现Swing组件是用Java实现轻量级( light-weight)组件没有本地代码不依赖操作系统支持这是它和AWT组件最大区别由于AWT组件通过和具体平台相关对等类(Peer)实现因此Swing比AWT组件具有更强实用性Swing在区别平台上表现致并且有能力提供本地窗口系统不支持其它特性+l}'Cyc7R.a{0U`Vl1Pw Swing采用了种MVC设计范式即"模型-视图-控制"(Model-View-Controller)其中模型用来保存内容视图用来显示内容控制器用来控制用户输入^lv1n+g[H&{JAVA中文站社区门户TvP,s'u2qRh Swing外观感觉采用可插入外观感觉(Pluggable Look and FeelPL&F)5rw'ett{4KP~i[p o 在AWT组件中由于控制组件外观对等类和具体平台相关使得AWT组件总是只有和本机相关外观Swing使得在个平台上运行时能够有区别外观用户可以选择自己习惯外观以下 3幅图是在同个操作系统下得到区别外观&j\-y'U6s.Y5jb`?~&WuCI xEMetal风格 JAVA中文站社区门户6~1A7z't-v5v rJAVA中文站社区门户#\%f7uXijcJAVA中文站社区门户N([eLiOMot风格JAVA中文站社区门户`r|.O7ENMO c6KfZ!Z8s S}/ZaLoo2k;Z$V:QWindows风格JAVA中文站社区门户Qmt2eL H,^n2g1ODzT[7.1.2 Swing类层次结构'Z5@D8wJ`JAVA中文站社区门户0V&?[#n*w"MQ 在javax.swing包中定义了两种类型组件:顶层容器(JFrameJAppletJDialog和JWindow)和轻量级组件Swing组件都是AWTContainer类直接子类和间接子类JAVA中文站社区门户%q*{0rxy-n_Q"S#Q5F M[9E-kz(oc ponentJAVA中文站社区门户 Q(ZQ$XWZL-{ -java.awt.Container{,cH8J}gK+X| -java.awt.WindowMG)tdZ ?fd -java.awt.Frame-javax.swing.JFrame`&|h t([e@ -javax.Dialog-javax.swing.JDialogG6utgX.y-M -javax.swing.JWindowJAVA中文站社区门户Ghm7nu+}-Yfec -java.awt.Applet-javax.swing.JAppletJAVA中文站社区门户6s.~W YGE2q -javax.swing.BoxQ-SEy)V*xw -javax.swing.JcomponetqwF$Bw]4iTL L(p`BbX(O Swing包是JFC(Java Foundation Classes)部分由许多包组成如下表:DJV8Y3b.S{JAVA中文站社区门户H3aB1i*[-VJAVA中文站社区门户[i9M,JTA[[,bJAVA中文站社区门户h!g)t'LL 包 描述 JAVA中文站社区门户e&mKCf:H8gx Com.sum.swing.plaf.mot 用户界面代表类它们实现Mot界面样式 JAVA中文站社区门户,e2eH B3k6VYbCom.sum.java.swing.plaf.windows 用户界面代表类它们实现Windows界面样式 JAVA中文站社区门户K |2w*zbL Javax.swing Swing组件和使用工具4o D?!ia Javax.swing.border Swing轻量组件边框 JAVA中文站社区门户]ilE KG Javax.swing.colorchooser JcolorChooser支持类/接口yN5a t@H8\?+I Javax.swing.event 事件和侦听器类X%y-W `'z/Pn(@i'Lc Javax.swing.filechooser JFileChooser支持类/接口'{EK&HO3@*XT#Z[ Javax.swing.pending 未完全实现Swing组件5X)@!Ck4` Javax.swing.plaf 抽象类定义UI代表行为 JAVA中文站社区门户2e,R@2qRh e Javax.swing.plaf.basic 实现所有标准界面样式公共功能基类 JAVA中文站社区门户 ["Cyt)^(a Javax.swing.plaf.metal 用户界面代表类它们实现Metal界面样式 JAVA中文站社区门户:G0{9J){{CC/Z Javax.swing.table Jtable组件 JAVA中文站社区门户1ZZ*TMY1K8U Javax.swing.text 支持文档显示和编辑 JAVA中文站社区门户cu,e2prO Javax.swing.text.html 支持显示和编辑HTML文档_(W[G5aolJ Javax.swing.text.html.parser Html文档分析器 JAVA中文站社区门户6O8d)D^g,z Javax.swing.text.rtf 支持显示和编辑RTF文件 JAVA中文站社区门户:m?|"A.|4G~.@"Oh Javax.swing.tree Jtree组件支持类\#Ip1j }0| Javax.swing.undo 支持取消操作 JAVA中文站社区门户2} B^6IX7X/M'K/o'hs]:s0Wh)O{KE"x8wJAVA中文站社区门户w8{ [D]0yk (在jdk1.3中第、第 2和pending包没有了增加了plaf.multi包主要功能:给缺省L&F加上附加L&F例如个MultiButtonUI例子可以同时处理MotButtonUI和AudioButtonUI.)JAVA中文站社区门户Jh2W+]+c6f7x Q2P AJAVA中文站社区门户B/H-L-g.] JY swing包是Swing提供最大包它包含将近100个类和25个接口几乎所有Swing组件都在swing包中只有JtableHeader和 JtextComponent是例外它们分别在swing.table和swing.text中JAVA中文站社区门户(ch7PQk1E]0{8dc o swing.border包中定义了事件和事件监听器类和AWTevent包类似它们都包括事件类和监听器接口2\^2Fa3ZNQ swing.pending包包含了没有完全实现Swing组件v%r\W7h9kc7a swing.table包中主要包括了表格组建(JTable)支持类JAVA中文站社区门户!A@0m;q%E0Zk.i swing.tree同样是JTree支持类JAVA中文站社区门户Mc`_'R5u$u swing.text、swing.text.html、swing.text.html.parser和swing.text.rtf都是用于显示和编辑文档包JAVA中文站社区门户\^4D:pm)\a:Z?/BhHs&f7.1.3 Swing组件多样化JAVA中文站社区门户d-Z9{e#_PlX!zJAVA中文站社区门户 b2n)C(Z9b)PL4u Swing是AWT扩展它提供了许多新图形界面组件Swing组件以"J"开头除了有和AWT类似按钮(JButton)、标签(JLabel)、复选框(JCheckBox)、菜单(JMenu)等基本组件外还增加了个丰富高层组件集合如表格(JTable)、树(JTree) JAVA中文站社区门户uto2s1E7.1.4 MVC(Model-View-Control)体系结构JAVA中文站社区门户&k?$fWOJAVA中文站社区门户hkY#e6D7^ Swing胜过AWT主要优势在于MVC体系结构普遍使用在个MVC用户界面中存 3个通讯对象:模型、视图和Control控件模型是指定逻辑表示法视图是模型可视化表示法而Control控件则指定了如何处理用户输入当模型发生改变时它会通知所有依赖它视图视图使用Control控件指定其相应机制JAVA中文站社区门户rIF0\q0ug,[_:K6s`XPA 为了简化组件设计工作在Swing组件中视图和Control控件两部分合为体每个组件有个相关分离模型和它使用界面(包括视图和Control控件)比如按钮JButton有个存储其状态分离模型ButtonModel对象组件模型是自动设置例如般都使用JButton 而不是使用ButtonModel 对象另外通过Model类子类或通过实现适当接口可以为组件建立自己模型把数据模型和组件联系起来用Model( )思路方法JAVA中文站社区门户1O[LKA2S^S AS(J&l MVC是现有编程语言中制作图形用户界面种通用思想其思路是把数据内容本身和显示方式分离开这样就使得数据显示更加灵活多样比如某年级各个班级学生人数是数据则显示方式是多种多样可以采用柱状图显示也可以采用饼图显示也可以采用直接数据输出因此在设计时候就考虑把数据和显示方式分开对于实现多种多样显示是非常有帮助"qO!zv;h:PRGe4[T,~` z#T`.kV){7.1.5 可存取性支持JAVA中文站社区门户[tV`(DJAVA中文站社区门户?"Z;Z,WoIy1t%n\y 所有Swing组件都实现了Accessible接口提供对可存取性支持使得辅助功能如屏幕阅读器能够十分方便从Swing组件中得到信息JAVA中文站社区门户S|`_:cJAVA中文站社区门户,L~:OXp7.1.6 支持键盘操作JAVA中文站社区门户-[a1\lF LI7FRJAVA中文站社区门户0z1Q#r[#r 在Swing组件中使用JComponent类registerKeyboardAction()思路方法能使用户通过键盘操作来替代鼠标驱动GUI上Swing组件相应动作有些类还为键盘操作提供了更便利思路方法JAVA中文站社区门户N Hn:WB'E"T$Vs^JAVA中文站社区门户y#C X;b:X:A 其实这就相当于热键使得用户可以只用键盘进行操作JAVA中文站社区门户N$E$mn};Z!k#Q!sRcq7.1.7 设置边框C#vtJp0f7eUJAVA中文站社区门户9c4kI@'Zr)]v 对Swing组件可以设置个和多个边框Swing中提供了各式各样边框供用户选用也能建立组合边框或自己设计边框种空白边框可以增大组件协助布局管理器对容器中组件进行合理布局C#kf9zb*jG'ay$z v)FVX.V7.1.8 使用图标(Icon)JAVA中文站社区门户9s2`7eHt"F4GJAVA中文站社区门户x!O)O6`-k 和AWT部件区别许多Swing组件如按钮、标签除了使用文字外还可以使用图标修饰自己7O&FF"mCJAVA中文站社区门户"J(Cnl^7e+\例7.1:JAVA中文站社区门户WFyC0KGk import javax.swing.*; //引入Swing包名QB zT*v }y //import com.sun.java.swing.*;o9E&e5S?y,n //使用JDK 1.2 Beta 4版和所有Swing 1.1 Beta 3JAVA中文站社区门户2o'| ^)G7@.c //的前版本,引入Swing包名用此思路方法JAVA中文站社区门户x)L,X[|9qL import java.awt.*;!a(]7` rM(TLg.jdX import java.awt.event.*;JAVA中文站社区门户W1~oeVEX V public SwingApplication {JAVA中文站社区门户.t&?2t5X(`v2l private String labelPrefix = "Number of button clicks: ";K:sOq*n private numClicks = 0; //计数器计算点击次数JAVA中文站社区门户+I5^\'RAd,k public Component createComponents {JAVA中文站社区门户/vL#b-hj%M final JLabel label = JLabel(labelPrefix + "0 ");JAVA中文站社区门户!@PZ0Vg:}_;VE.LJAVA中文站社区门户OaBWv9| JButton button = JButton("I'm a Swing button!");JAVA中文站社区门户Jb6jf8uR'[ button.Mnemonic(KeyEvent.VK_I); //设置按钮热键为'I'6P.f'eI!Pr button.addActionListener( ActionListener {JAVA中文站社区门户R|JGYK"p"t6p public void actionPerformed(ActionEvent e) {JAVA中文站社区门户T.I#z3NqcI;b^*U numClicks;CGx-UbG;Vy8m&c label.Text(labelPrefix + numClicks);JAVA中文站社区门户_ku*GZh#B hfyw ^ //显示按钮被点击次数JAVA中文站社区门户!}4f$J L'_3@^2NB }JAVA中文站社区门户O"I~~2`\7Bq });ZBv*H_nO}KTKQ belFor(button);4{1N8m}'_s@tqjIbst /* 在顶层容器及其内容的间放置空间常用办法是把内容添加到Jpanel上而Jpanel本身没有边框*/!E%wdnp5Le:b2C&kZl)b,G;{/Pr#b JPanel pane = JPanel;JAVA中文站社区门户d+H%bQ(K{ pane.Border(BorderFactory.createEmptyBorder(| l0jX}6jzyzQ 30, //top`9\'Y+@4Ew^A7gjZ 30, //left9m{:ct]Ha 10, //bottom@.y:t_/i6@V 30) //right*Wb F \;qZoP );JAVA中文站社区门户/Fff EuPhqC yout( GridLayout(0, 1)); //单列多行JAVA中文站社区门户j"fd?.B-|mJ pane.add(button);JAVA中文站社区门户I;~E"Y.?D6d"AS { pane.add(label);8\ ~G q7JaS'y5B-Q pane;_~)iNoG8W` }JAVA中文站社区门户9W%o4](IpvLPJAVA中文站社区门户*KdwdDN public void (String args) {JAVA中文站社区门户D2cy(aQ/b\ZP try {[#_ t e!u5E9bgP5i UIManager.LookAndFeel(JAVA中文站社区门户u-]#\0lF'o2G,e T UIManager.getCrossPlatformLookAndFeelClassName);JAVA中文站社区门户Ex/A2sO } //设置窗口风格7|kN~dHE } catch (Exception e) { }W'qD`:e HzJF%yu6wO`x2Ug //创建顶层容器并添加内容.JAVA中文站社区门户oo6Ksibs JFrame frame = JFrame("SwingApplication");t2DhHr$j SwingApplication app = SwingApplication;~|up;aQ+k Component contents = app.createComponents;oSp)wX frame.getContentPane.add(contents, BorderLayout.CENTER);JAVA中文站社区门户?;A R2~N[*Q"\+H&J.IK&uj ` //窗口设置结束开始显示"s1pwFg%n2wP frame.addWindowListener( WindowAdapter {"c%F\F.z+zW //匿名类用于注册监听器JAVA中文站社区门户4bu+NzKH public void windowClosing(WindowEvent e) {-EDQ.zq2w .exit(0);JAVA中文站社区门户wd'J9c.p@H }hI*UO?8N });JAVA中文站社区门户OV#I^\^S9V frame.pack;/r Z)[8Ge7Z1y frame.Visible(true);JAVA中文站社区门户S&ks%|'i;L$[$` y1r x~ }7y3\sMpjrO }aEx2Ly.i ]&C%AWi)I!v:AS4c(e 查看运行结果ye3y-r0O;f"mJAVA中文站社区门户SV;]%}0jN7.1.9 Swing结构介绍"z:tf s;s:kJAVA中文站社区门户jfeUlU Swing设计般可按照下列流程进行:8V@ wkC 1. 引入Swing包muS%eA1n0if |-z 2. 选择"外观和感觉"KB&rk&Q;D6~S'kF0u 3. 设置顶层容器FU!^ rDAS 4. 设置按钮和标签JAVA中文站社区门户_*U)^ yK5[5s 5. 向容器中添加组件l]3N^*e 6. 在组件周围添加边界JAVA中文站社区门户-|z A#GHDa 7. 进行事件处理+mA\alo`%i6SJAVA中文站社区门户Na-kv"c T 例子7.1介绍说明了Swing中设计结构以及最基本组件Button和Label使用方法在中我们建立个Swing风格窗口并在其中添加个按钮中保存个计数器以计算按钮被点击次数并在每次点击的后用个Label显示在这个中我们可以看到Swing组件使用和AWT组件使用基本思路方法致使用事件处理机制也完全相同这些在前面AWT中已经讲过不再赘述TAG: Swing swing 教程 设计 用户界面31/3123>2009-1-12 1:13:34疯狂代码 /。
Java桌面程序开发第5章-使用Swing常用组件
面所需要的基本组件、选择型组件,菜单等的创建和使用 2.理解:工具栏的创建,对话框的创建和使用
5.1 GUI的基本元素:标签、按钮、文本框
1.JLabel
• JLabel类是一个用来显示文本的类,文本就是一个字符串。在程 序中指定要显示的字符串,但该字符串在运行时不能被用户修改
密码文本框是用来输入密码的文本框。
密码框继承单行文本框,所以密码框只显示单行输入框。 但是,与单行文本框不同的是,密码框输入的文字将不会 正常显示出来,而是使用其它字符代替。
可以通过调用setEchoChar(char c)来更改显示字符。密 码框的作用是防止别人看到所输入的文字信息。
JPasswordField的构造方法:
JCheckBox类继承JToggleButton类,而JToggleButton类 实现一个反选按键,只有按下和释放两种状态。复选框也 有类似功能,只有选择和不选择两种状态,而且复选框可 由多个按钮组成一个组群。
定义它们之间的间隔。 • int getHorizontalAlignment():返回标签内容沿 X 轴的对齐方式。 • int getVerticalAlignment() :返回标签内容沿 Y 轴的对齐方式。 • void setLabelFor(Component c):设置将标签添加到的组件。
区要换行)。
实例
例5-10 使用JTextArea
例5-11 从一个文本区复制选中的文字到另一个文本区
5.3 选择型组件
Java提供了很多的选择型组件,用户可通过单击选定,免 去了输入文本的麻烦。
常用的选项组件有单选框,复选框,列表框,组合列表框 等。
Java_Swing中让窗口居中显示的方法(三种方法)
Java_Swing中让窗⼝居中显⽰的⽅法(三种⽅法)⽅法⼀:1int windowWidth = frame.getWidth(); // 获得窗⼝宽2int windowHeight = frame.getHeight(); // 获得窗⼝⾼3Toolkit kit = Toolkit.getDefaultToolkit(); // 定义⼯具包4Dimension screenSize = kit.getScreenSize(); // 获取屏幕的尺⼨5int screenWidth = screenSize.width; // 获取屏幕的宽6int screenHeight = screenSize.height; // 获取屏幕的⾼7frame.setLocation(screenWidth / 2 - windowWidth / 2, screenHeight / 2 - windowHeight / 2);// 设置窗⼝居中显⽰⽅法⼆:1this.setLocationRelativeTo(null);//窗⼝在屏幕中间显⽰⽅法三:窗体都是相对于桌⾯(屏幕区域减去任务栏区域)⽽不是屏幕居中。
另外在 setLocationRelativeTo 内部也是通过调⽤ getCenterPoint 获得桌⾯中⼼点坐标的,所以上⾯第⼀种⽅式效率能稍稍⾼点。
1import java.awt.GraphicsEnvironment;2import java.awt.Point;3import javax.swing.JFrame;456@SuppressWarnings("serial")7public class MyFrame extends JFrame {89 private final int INIT_W = 600; //窗体初始宽度10 private final int INIT_H = 460; //窗体初始⾼度1112 public MyFrame() {13 super("Center Frame Test");14 Point p = GraphicsEnvironment.getLocalGraphicsEnvironment().getCenterPoint();15 setBounds(p.x - INIT_W / 2, p.y - INIT_H / 2, INIT_W, INIT_H);16 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);17 }1819 public static void main(String[] args) {20 new MyFrame().setVisible(true);21 }2223}。
swing教程
swing教程Swing是Java的一个图形界面(GUI)工具包,它提供了一组用于创建富客户端应用程序的类和方法。
本教程将带您逐步学习Swing的基本概念和用法。
1. 引入Swing库在开始编写Swing应用程序之前,首先需要在代码中引入Swing库,可以通过添加以下代码实现:```import javax.swing.*;```2. 创建Swing窗口创建一个Swing窗口是使用Swing的第一步。
可以通过以下代码创建一个基本的Swing窗口:```JFrame frame = new JFrame("Swing窗口");frame.setSize(400, 300);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);```3. 添加组件在Swing窗口中添加各种组件(如按钮、标签、文本框等)是创建功能完善的界面的关键。
可以使用不同的Swing类来创建和定位这些组件,例如JButton、JLabel和JTextField。
以下是添加一个按钮和一个标签的示例:```JButton button = new JButton("点击我");JLabel label = new JLabel("Hello, Swing!");frame.add(button);frame.add(label);```4. 布局管理器布局管理器是用于控制Swing组件在窗口中的位置和大小的工具。
Swing提供了多种布局管理器,例如FlowLayout、BorderLayout和GridLayout。
使用布局管理器可以轻松地创建自适应和响应式的界面。
以下是使用FlowLayout布局管理器的示例:```frame.setLayout(new FlowLayout());```5. 事件处理Swing允许通过添加事件监听器来处理用户的交互。
JAVASWING布局管理器实例之GRIDBAGLAYOUT,实现左右选择框
说来惭愧,使用Swing快2年了,一直没有深入研究Swing中著名的布局管理器GridBagLayout,说他著名是因为他布局灵活,可以适用各种复杂的布局要求,当然也因为他是著名的复杂,这次由于过几天一次重要的面试,“迫使”我不得不好好研究一下(哈哈,其前太懒了,以后一定多注意。
先来分享一下我的学习成果,对一些重要参数进行说明:1. gridx,gridy 设置组件的位置:其实就是组件行列的设置,注意都是从0开始的,比如 gridx=0,gridy=1时放在0行1列。
2.gridwidth,gridheight—设置组件跨越的行列,默认值为1;GridBagConstraints.REMAINDER常量,代表此组件为此行或此列的最后一个组件,会占据所有剩余的空间。
3. weightx,weighty——用来设置窗口变大时,各组件跟着变大的比例。
比如组件A的weightx=0.5,组件B的weightx=1,那么窗口X轴变大时剩余的空间就会以1:2的比例分配给组件A和B.4.anchor —当组件空间大于组件本身时,要将组件置于何处。
有CENTER (默认值)、NORTH、NORTHEAST、EAST、SOUTHEAST、WEST、NORTHWEST选择。
5.insets ——设置组件之间彼此的间距。
它有四个参数,分别是上,左,下,右,默认为(0,0,0,0)。
好了,先看一下左右选择框的实现吧:import java.awt.Dimension;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.BorderFactory;import javax.swing.DefaultListModel;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JList;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.UIManager;import javax.swing.UnsupportedLookAndFeelException;public class MyFrame extends JFrame {JPanel mainPanel = new JPanel();JButton add = new JButton();JButton left = new JButton();JButton right = new JButton();JLabel label = new JLabel();JTextField field = new JTextField();DefaultListModel leftModel = new DefaultListModel(); DefaultListModel rightMOdel = new DefaultListModel(); JList leftList = new JList(leftModel);JList rightList = new JList(rightMOdel);JPanel left_Right_Panel = new JPanel();public MyFrame() {this.setTitle("test");this.setPreferredSize(new Dimension(600, 400)); this.initComponent();this.addData();this.setVisible(true);this.pack();}/*** 初始化组件*/private void initComponent() {label.setText("添加选项:");add.setText("添加");leftList.setPreferredSize(new Dimension(150, 150));rightList.setPreferredSize(leftList.getPreferredSize());left.setText("左");right.setText("右");mainPanel.setBorder(BorderFactory.createTitledBorder("左右选择框"));mainPanel.setLayout(new GridBagLayout());GridBagConstraints c = new GridBagConstraints();c.gridx = 0; // 0行0列c.gridy = 0;c.gridwidth = 1;c.gridheight = 1;c.fill = GridBagConstraints.HORIZONTAL;c.weightx = 0;c.weighty = 0;mainPanel.add(label, c);c.gridx++;c.weightx = 1;mainPanel.add(field, c);c.gridx++;c.weightx = 0;c.gridwidth = 1;c.gridheight = 1;// c.fill = GridBagConstraints.HORIZONTAL;mainPanel.add(add, c);c.gridx = 0;c.gridy = 1;c.weightx = 1;c.weighty = 1;c.gridwidth = 2;c.gridheight = 2;c.fill = GridBagConstraints.BOTH;mainPanel.add(leftList, c);c.gridx = 2;c.gridy = 1;c.gridwidth = 1;c.gridheight = 1;c.weightx = 0;c.weighty = 0.5;c.anchor = GridBagConstraints.SOUTH;c.fill = GridBagConstraints.HORIZONTAL;mainPanel.add(left, c);c.gridx = 2;c.gridy = 2;c.anchor = GridBagConstraints.NORTH;c.fill = GridBagConstraints.HORIZONTAL;mainPanel.add(right, c);c.gridx = 3;c.gridy = 1;c.gridwidth = 1;c.gridheight = 2;c.weightx = 1;c.weighty = 1;c.fill = GridBagConstraints.BOTH;mainPanel.add(rightList, c);this.getContentPane().add(mainPanel);}private void addData() {add.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubaddItem();}});left.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubleftItem();}});right.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) { // TODO Auto-generated method stubrightItem();}});}/*** 增加项*/private void addItem() {if (field.getText() != null&& !field.getText().equals("")) {((DefaultListModel) leftList.getModel()).addElement(field.getText()); field.setText("");}}/*** 左移项*/private void leftItem() {if (rightList.getSelectedIndex() != -1) {Object o = rightList.getSelectedValue();((DefaultListModel)rightList.getModel()).remove(rightList.getSelectedIndex());((DefaultListModel)leftList.getModel()).addElement(o);}}/*** 右移项*/private void rightItem() {if (leftList.getSelectedIndex() != -1) {Object o = leftList.getSelectedValue();((DefaultListModel)leftList.getModel()).remove(leftList.getSelectedIndex());((DefaultListModel)rightList.getModel()).addElement(o);}}public static void main(String args[]) {try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); } catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (InstantiationException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IllegalAccessException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (UnsupportedLookAndFeelException e) {// TODO Auto-generated catch blocke.printStackTrace();}MyFrame frame = new MyFrame();}}。
java swing 中文教程
作者:williamchen译者:Matthew Chen备注:本文是翻译,由于部分文本网上有提供,就直接使用了。
作者的初稿,不是很规范的英文,但是内容值得一读,所以翻译了出来,一系列共有四篇,红字为译者评论。
Overview概述Java GUI toolkits have always been a controversial topic. The same type of debates also happened in other languages such as Smalltalk. In fact there exist such debates on everyplatform-independent language. It is especially prominent in Java because Java is the most dominating language today.Java GUI 工具包一直是一个倍受争议的话题。
同样的争论也发生在其他编程语言如Smalltalk。
实际上每个平台无关的语言都存在着这样的争论。
Java作为当前最受广泛使用的编程语言而尤为突出。
So what’s the controversy? Basically, it is a dispute between people who support emulated components(or widgets, or controls) and those who support native components. There are two camps among Java developers, one of which advocates for emulated components as in Swing, and the other native components as in SWT.这场争论在支持模拟组件(如widgets和control,在下文中也称之为仿造组件)和支持本地组件(在下文中也称之为原生组件)的人们之间展开,于是Java开发者形成了两个不同的阵营,提倡使用模拟组件的Swing,和提倡使用原生组件的SWT。
swing入门教程
第一步是创建类。将组件放在 JFrame 上的 Swing 应用程序需要继承 JFrame 类,如 下所示: public class HelloWorldextends JFrame 这样做之后,就得到上面描述的所有 JFrame 属性,最重要的是操作系统对窗口的本机 支持。下一步是把组件放在屏幕上。在这个示例中,使用了一个 null 布局。在教程的后 面部分,您将学到更多关于布局和布局管理器的内容。但对于这个示例,可以用数字表 示 JFrame 上的像素位置: public HelloWorld() { super(); this.setSize(300,200); this.getContentPane().setLayout(null); this.add(getJLabel(),null); this.add(getJTextField(),null); this.add(getJButton(),null); this.setTitle("HelloWorld"); }
时,造成按钮单击。 除了这些方法,我还要介绍 JButton 包含的另外一组方法。这些方法利用了按钮的所有 不同状态。状态是对组件进行描述的一个属性,通常采用真/假设置。在 JButton 中,可 以包含以下可能状态:活动/不活动、选中/没选中、鼠标经过/鼠标离开、按下/没按下, 等等。另外,可以组合这些状态,例如按钮可以在鼠标经过的同时被选中。现在您可能 会问自己用这些状态到底要做什么。作为示例,请看看您的浏览器上的后退按钮。请注
•
JComponent 不仅是 Swing 组件的基类, 还是定制组件的基类(有关的更多信息
在“中级 Swing”教程中) 。
•
它为所有组件提供了绘制的基础架构 —— 一些方便进行组件定制的东西(同样,
Java Swing教程
Java Swing 编程基础与进阶/art/201201/313153.htm1、概述Swing中的JApplet和JFrame/art/200907/136486.htm本文介绍JApplet和JFrame都是只包含一个组件的容器,这个组件是JRootPane的一个实例,所以JApplet和JFrame之间是互相通用的。
这几天,闲时看了一下Swing。
Swing常用的两个类,一个是JFrame窗体类,一个是JApplet小应用程序类。
其中JApplet 依赖浏览器来执行。
很多浏览器都可以支持JApplet,包括了IE,Firefox等。
不过如何用IE6来执行的话,IE6会有脚本警告。
JApplet和JFrame都是只包含一个组件的容器,这个组件是JRootPane的一个实例。
所以JApplet和JFrame之间是互相通用的。
如以下代码:package com.tntxia.test.swing.jApplet;import java.awt.BorderLayout;import java.awt.Container;import java.awt.FlowLayout;import javax.swing.ImageIcon;import javax.swing.JApplet;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.SwingConstants;public class HelloWorld extends JApplet {/****/private static final long serialVersionUID = 52493594634447013L;public void init() {Container contentPane = getContentPane();//原文如不修改,不能正常显示图标//修改后--------.URL codebase=getClass().getResource("loli.jpg");JLabel label = new JLabel(new ImageIcon(codebase));//----------修改后的程序有个毛病,既作为applet使用时,不能刷新,一旦刷新图就没了。
Swing 编程
Java之Swing编程理解什么是GUI/设计GUI基本界面/理解事件类和接口/学习使用部件按钮,标签,列表,文本框,面板/学会处理鼠标和键盘事件/使用基本的布局管理器。
GUI是由N多的部件构成的,这些部件叫Components, 也叫Gadget(神探加吉特那个词)。
这些部件有JLabel/JTextField/JButton/JCheckBox/JComboxBox/JList/JPanel。
它们构成了界面。
这些部件在屏幕上的排列顺序由LayoutManager负责管理,再加上Menu,Menu Bar 就构成了完整的用户界面。
用户界面只是一个外观。
界面是为了完成和用户的交互任务。
用户可以用Mouse/KeyBoard/甚至是Voice 。
界面取得用户输入事件后传给相应的Listener类对象,由这些特殊的Listener响应事件,这些Listener是一些接口(Interface),接口中有一些必须超越的方法。
事件发生后,这些被超越的方法自动调用以完成交互任务。
9.1Swing概况(1)Swing由纯Java写成,可移植性好,外观在不同平台上相同。
所以Swing部件称为轻量级组件(2)AWT部件和平台紧密相关,各种平台它们的外观不尽相同,所以称重量级组件,通用性差。
注意,某些Swing部件还是重量级的,比如JFrame和JAppletng.object ponent java.awt.container java.swing.JComponentJAVA的GUI部件都是Component,都有paint repaint update方法Container是一个集合,里面放了各种的GUI部件,而我们常用的Contentpane就是一个Container对象请大家注意J2SDK中的Components/container/Jcomponet的方法,这些方法是所有部件共有的。
Swing 部件继承图JComponent的好处1 自定义Look and Feel外观。
java语言中awt和swing组件的基本用法
java语言中awt和swing组件的基本用法AWT (Abstract Window Toolkit)是Java编程语言的一套图形用户界面(GUI)组件集,它提供了创建和管理窗口、按钮、标签等图形组件的能力。
AWT组件是依赖于操作系统的本地GUI组件。
下面是使用AWT组件的基本步骤:1.导入AWT相关的类:通常在使用AWT组件之前,需要导入`java.awt`和`java.awt.event`包中的类。
2.创建一个Frame:使用`Frame`类来创建一个顶级窗口。
3.创建其他组件:使用AWT提供的组件类(如`Button`、`Label`等)来创建其他需要的组件。
4.将组件添加到Frame:使用`add()`方法将其他组件添加到Frame中。
5.设置Frame的布局:使用`setLayout()`方法设置Frame的布局方式,如`FlowLayout`、`GridLayout`等。
6.设置Frame的大小和可见性:使用`setSize()`方法设置Frame 的大小,使用`setVisible(true)`方法设置Frame可见。
7.添加事件监听器:使用`addActionListener()`方法为按钮等组件添加事件监听器。
Swing是Java编程语言中提供的一组GUI组件,它是在AWT的基础上进行了增强和扩展。
Swing组件是纯Java组件,不依赖于操作系统的本地组件,因此具有更高的可移植性和灵活性。
下面是使用Swing组件的基本步骤:1.导入Swing相关的类:通常在使用Swing组件之前,需要导入`javax.swing`包中的类。
2.创建一个JFrame:使用`JFrame`类来创建一个顶级窗口。
3.创建其他组件:使用Swing提供的组件类(如`JButton`、`JLabel`等)来创建其他需要的组件。
4.将组件添加到JFrame中:使用`add()`方法将其他组件添加到JFrame中。
Swing编程
• 实现 youtManager 接口 • 帮助在容器中放置组件
•Java 中可用的各种布局如下:
• BorderLayout
• FlowLayout
• GridLayout
BorderLayout 2-1
North
上边的组件
说明
构造新的中间对齐的顺Fl序ow排L列ay的ou组t,件 将垂直和水平间距保留为 5 个像素
setAlignment( int align) 设置指定布局的对齐方式
setHgap(int hgap)
设置指定布局的水平间距
setVgap(int vgap)
设置指定布局的垂直间距
垂直或水平间距
容器
右下角
闭和图标化窗口的按钮默认情况下不透明
Swing GUI 组件
JTexField
JLabel
JRadioButton
JButton
JComboBox JCheckBox
JTexArea
事件体系结构
EventObject AWTEvent
ActionEvent AdjustmentEvent ComponentEvent ItemEvent TextEvent ContainerEvent FocusEvent InputEvent PaintEvent WindowEvent KeyEvent MouseEvent
JPopupMenu 类 2-1
左 边
将组件间Ce的nte水r 平间距设置为指定的的值 East 将组件间的垂直间距设置为指定组的值
件
下边的组件 South
FlowLayout 2-1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
窗体的内容面板
一个完整的窗体是由外部框架和内容面板两部分组成的; 外部框架是指由标题栏和四边所组成空心边框,它主要用 来控制窗体的大小和外观; 我们实际操作的是内容面板,如设置窗体的背景色,设置 窗体的布局,往窗体中添加其它组件等等; 使用getContentPane方法获得当前窗体的内容面板,该方 法的返回值是Container(容器)类对象,如: Container contentPane = getContentPane();
量
颜
黑色 青色 灰色 浅灰色
色常Biblioteka Color.BLUE量
颜
蓝色 深灰色 绿色 洋红色
色
Color.BLACK
Color.DARK_GRAY Color.GREEN Color.MAGENTA
Color.ORANGE
Color.RED Color.YELLOW
桔黄色
红色 黄色
Color.PINK
Color.WHITE
说
创建一个带图标的按钮
创建一个带文本和图标的按钮
明
JButton(Icon icon)
JButton(String text, Icon icon)
JButton的常用方法
方 法 原 型
void setText(String text) String getText() void setBackground(Color bg) Color getBackground() void setEnabled(boolean b) void setVisible(boolean b) void setToolTipText(String text) 设置按钮上的文本 获得按钮上的文本 设置按钮的背景色 获得按钮的背景色
明
设置容器的背景色,由参数bg指定颜色 设置容器的布局,参数是布局管理器 将指定组件添加到容器中的指定位置上 从容器中移除指定的组件 从容器中移除所有组件 重新绘制当前容器
Component add(Component comp)
Component add(Component comp, int index) void remove(Component comp) void removeAll() void repaint()
粉红色
白色
javax.swing.JButton
在Swing程序中,按钮可能是使用量最大的组件之一, JButton则是用来创建按钮的; JButton类的构造方法有5种重载方式,以下是常用的几种:
构 造 方 法
JButton() JButton(String text) 创建一个空按钮 创建一个带文本的按钮
AWT组件的类体系结构
Component
Button
Checkbox
Container
Choice
Canvas
TextComponent
Label
Panel
Window
TextArea
TextField
Applet
Frame
Dialog
AWT编程示例
AWT组件最大的缺陷是它依赖于操作系统,也就是说,AWT 程序运行在不同的操作上会有不同的外观和行为,这一点 对于Java的平台无关性来讲,是无法容忍的。
Swing简介以及javax.swing包
Swing组件是在AWT组件基础上发展而来的轻量级组件,与 AWT相比不但改进了用户界面,而且所需的系统资源更少; Swing是纯Java组件,使得应用程序在不同的平台上运行 时具有相同外观和相同的行为。 javax.swing包中包含了一系列Swing组件,如果要使用该 包中的类,则必须显式地声明如下语句: import javax.swing.*;
Container类在java.awt包中。
java.awt.Container
Container类通常用于操作JFrame的内容面板,其常用的 方法有:
方 法 原 型
void setBackground(Color bg) void setLayout(LayoutManager mgr)
说
往容器中添加一个组件
构 造 方 法
JFrame()
JFrame(String title)
说
创建新窗体,该窗体初始为不可见
明
创建新窗体,使用参数title指定标题,该窗体初始为不可见
JFrame的常用方法
方 法 原 型
void setTitle(String title) void setSize(int width, int height) void setResizable(boolean resizable) void setVisible(boolean b)
说
明
设置启用(或禁用)按钮,由参数b决定 设置按钮是否为可见,由参数b决定 设置按钮的悬停提示信息
void setMnemonic(int mnemonic)
设置按钮的快捷键
javax.swing.JLabel
JLabel是最简单的Swing组件之一,用于在窗体上显示标 签, JLabel既可以显示文本,也可以显示图像; JLabel类的构造方法有6种重载方式: 构 造 方 法
JCheckBox
JRadioButton
JMenu
常用的基本Swing组件
在Swing编程中,有一些经常要使用到的组件,其中包括:
JFrame(窗体,框架) JButton(按钮) JLabel(标签) JTextField(文本框)
javax.swing.JFrame
JFrame组件用于在Swing程序中创建窗体; JFrame类的构造方法有4种重载方式,以下是常用的几种:
java.awt包
java.awt包是Java内置的包,属于Java基础类库(JFC) 的一部分,其中包括以下内容:
便于用户输入的一组丰富的界面组件; 将组件放置在适当位置的几种布局管理器; 事件处理模型; 图形和图像工具等等。
要使用到该包中的类,则必须显式地声明如下语句: import java.awt.*;
java.awt.Color
Color类用于创建颜色对象,其构造方法共有7种重载方式, 以下是常用的几种:
构 造 方 法
Color(int r, int b, int g)
说
明
使用指定的红、蓝、绿的色值(0~255)创建sRGB颜色对象
Color类中还提供一系列静态的颜色常量:
常
Color.CYAN Color.GRAY Color.LIGHT_GRAY
创建窗体示例
import javax.swing.*; //导入必要的包 /**自定义窗体类,继承于JFrame类*/ public class MyFrame extends JFrame { /**构造方法*/ public MyFrame() { //super("这是我的第一个窗体"); //利用父类的构造方法设置标题 this.setTitle("这是我的第一个窗体"); //设置窗体的标题 this.setSize(300, 200); //设置窗体的大小 this.setVisible(true); //设置窗体为可见,即显示窗体 } /**main方法,程序入口*/ public static void main(String[] args) { MyFrame mf = new MyFrame(); //创建窗体实例 } }
内容面板示例
import java.awt.*; //Container类和Color类在此包中 import javax.swing.*; public class ContentPaneDemo extends JFrame { public ContentPaneDemo() { super("内容面板示例"); //获得当前窗体的内容面板 Container contentPane = this.getContentPane(); //设置内容面板的背景色为红色 contentPane.setBackground(Color.RED); setSize(300, 200); setResizable(false); //设置窗体不可调整大小 setVisible(true); } public static void main(String[] args) { ContentPaneDemo cpd = new ContentPaneDemo(); } }
Swing组件的类体系结构
Object Component Container Window Frame JFrame Dialog JDialog JToggleButton JMenuItem JButton JComponent JText JComboBox JLabel JList JMenuBar JOptionPane JPanel JScrollBar AbstractButton JTextArea JTextField
说
明
设置窗体标题,标题内容由参数title指定
设置窗体的大小,参数width指定宽度,参数height指 定高度,单位为像素
设置窗体能否调整大小,由参数resizable决定 设置窗体是否为可见,由参数b决定,true为可见, false为不可见
Container getContentPane()
void setDefaultCloseOperation(int operation) void dispose() void repaint()
获得当前窗体的内容面板
设置窗体在关闭时默认执行的操作 释放当前窗体及其所有子组件所占用的资源,即卸载 窗体 重新绘制当前窗体