互联网就像一片大海,它会淹死那些不会游泳的人,因此筛选信息的能力是非常重要的。
如果今天是我生命中最后一天,我还会去做今天要做的事情吗?我们需要时刻提醒自己的生命行将终结。这是帮助我们为生命中的重要选择做出决定的最好办法。
— 高大可
记住,你即将死去! — Steve jobs
一、图形用户界面的类主要在哪个包中?
java.awt 重量级组件 依赖与具体的操作系统
javax.swing 轻量级组件 真正实现了跨平台
二、AWT包主要包含的四部分是什么?
容器: 用于放置基本组件,其本身也是一种组件
基本组件: 包括按钮、标签、文本框等,是图形界面的基本组成元素
布局管理器: 对容器中放置的组件进行布局管理
事件处理: 使得用户能够通过图形界面与系统交互,又称加监听器
三、容器部分
JFrame 窗体类 默认的是边框布局(BorderLayout)
代码演示如下:
import java.awt.Color; import javax.swing.JFrame; publicclass Test { publicstaticvoid main(String[] args) { JFrame f = new JFrame("MyFrame");//创建窗口对象命名为"MyFrame" f.setSize(200,200);//设置Frame的大小 f.setResizable(false);//设置为大小不可调 f.setBackground(Color.GRAY);//设置背景色 f.setLocationRelativeTo(null);//设置窗口出现的默认位置 f.setVisible(true);//设置Frame为可见 } }
效果如下
JPanel 面板类 默认的是流式布局(FlowLayout)
代码演示如下:
import java.awt.BorderLayout; import java.awt.Color; import java.awt.Panel; import javax.swing.JFrame; publicclass Test { publicstaticvoid main(String[] args) { JFrame f = new JFrame("MyFrame");//创建窗口对象命名为"MyFrame" f.setSize(200,200);//设置Frame的大小 f.setResizable(false);//设置为大小不可调 f.setBackground(Color.GRAY);//设置背景色 f.setLocationRelativeTo(null);//设置窗口出现的默认位置 //添加几个面板,并设置背景色 Panel p1 = new Panel();//设置第一个Panel p1.setBackground(Color.red);//设置第一个Panel的背景色 Panel p2 = new Panel();//设置第二个Panel p2.setBackground(Color.yellow);//设置第二个Panel的背景色 Panel p3 = new Panel();//设置第三个Panel p3.setBackground(Color.blue);//设置第三个Panel的背景色 //将Panel添加到Frame中 f.add(p1, BorderLayout.NORTH);//将第一个Panle加入Frame中 f.add(p2, BorderLayout.CENTER);//将第二个Panle加入Frame中 f.add(p3, BorderLayout.SOUTH);//将第三个Panle加入Frame中 f.setVisible(true);//设置Frame为可见 } }
输出的结果是:
每一个容器都可以设置布局,但是一个容器只能设置一个布局。
四、布局管理器
FlowLayout 流式布局类
流式布局是Panel类的默认布局,用于将组件按照从左到右、从上到下的顺序进行布局。组件间默认的间距是5个像素点,默认的对齐方式是居中。
BorderLayout 边框布局类
边框布局是JFrame类的默认布局,此布局管理器将容器划分为东(East)、西(West)、南(South)、北(North)、中(Center)五个区域。
GridLayout 网格布局类
网格布局管理器将容器划分为由行和列组成的多个网格,每个网格放一个组件。采用网格布局,在容器中按照从左到右、从上到下的顺序往网格中逐个添加组件。
这些布局是java.awt包下的类
五、独立组件
JLabel 标签类
JTextField 文本输入框类
JButton 按钮类
JPasswordField 密码输入框类
JComboBox 下拉列表框
JCheckBox 复选框
JList 列表选项
代码演示如下:
import java.awt.Checkbox; import java.awt.CheckboxGroup; import java.awt.Color; import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JLabel; publicclass Test { publicstaticvoid main(String[] args) { JFrame f = new JFrame("MyFrame");//创建窗口对象命名为"MyFrame" f.setSize(200,100);//设置Frame的大小 f.setResizable(false);//设置为大小不可调 f.setBackground(Color.GRAY);//设置背景色 f.setLocationRelativeTo(null);//设置窗口出现的默认位置 f.setLayout(new GridLayout(1,3));//设置窗体布局为网格布局 JLabel lb = new JLabel("性别:");//添加性别标签 lb.setAlignmentY(JLabel.RIGHT_ALIGNMENT); //设置分组以实现单选功能 CheckboxGroup cbg = new CheckboxGroup(); //创建JCheckbox组件 Checkbox cb1 = new Checkbox("男",true,cbg); Checkbox cb2 = new Checkbox("女",false,cbg); //在Frame中加组件 f.add(lb); f.add(cb1); f.add(cb2); f.setVisible(true);//设置窗体可见 } }
运行结果是:
这些这些组件都继承自Component类。
六、事件监听机制
一个简单的事件处理流程表述为:在一个按钮对象上点击鼠标时,系统即发出事件通知,这个事件会被做为一个EventObject(事件对象)通知给对这个事件有兴趣的处理对象EventListener(事件监听器),监听器再对该事件进行处理的命令。
一个事件处理流程由三部分组成:
事件源:即焦点所在的组件,如窗口、按钮、复选框等
事件:用户对事件源的各种操作动作
事件处理器:用于接受并处理事件的方法
代码演示如下:
import java.awt.FlowLayout; import javax.swing.JFrame; publicclass QQdenglu { publicstaticvoid main(String[] args){ //创建窗体对象 JFrame Jf=new JFrame(); //设置窗口标题 Jf.setTitle("QQ登陆"); //设置窗口大小 Jf.setSize(300,300); //设置点击关闭按钮的时候退出程序 Jf.setDefaultCloseOperation(3); //创建一个管理器布局规则 FlowLayout fl=new FlowLayout(); //将管理器规则加给窗体对象 Jf.setLayout(fl); //添加组件 //文本标签,帐号 javax.swing.JLabel Jl=new javax.swing.JLabel("帐号"); //加到窗体中 Jf.add(Jl); //输入框 javax.swing.JTextField field = new javax.swing.JTextField(20); Jf.add(field); //文本标签,密码 javax.swing.JLabel J2=new javax.swing.JLabel("密码"); //加到窗体中 Jf.add(J2); //输入密码栏 javax.swing.JTextField field1 =new javax.swing.JTextField(20); //加到窗体中 Jf.add(field1); //登陆按钮 javax.swing.JButton JBu=new javax.swing.JButton("登陆"); //加到窗体中 Jf.add(JBu); //设置一个保存密码的复选框 javax.swing.JCheckBox box = new javax.swing.JCheckBox("保存密码"); //加到窗体中 Jf.add(box); //设置可见的 Jf.setVisible(true); //给按钮加一个监听器 LoginListener lis= new LoginListener(); JBu.addActionListener(lis); } }
以上是类QQdenglu的代码部分,下面是它的监听器类LoginListener的代码部分
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JLabel; publicclass LoginListener implements ActionListener{ publicvoid actionPerformed(ActionEvent e){ JFrame jfr=new JFrame("跳转界面"); jfr.setSize(300,300); JLabel label = new JLabel("你跳转了"); jfr.add(label); jfr.setVisible(true); } }
程序预期结果是当点击登录按钮时,监听得到事件信息,弹出另外一个对话框
当我点击登录后出现的结果是
结果跟预期是一样的
这部分就总结这些,下次总结数组与集合框架的部分
10月6日写于蓝杰公司
相关推荐
Swing组件是Java GUI(图形用户界面)编程中的核心元素,它是Java Foundation Classes (JFC) 的一部分。Swing提供了一系列丰富的组件,用于构建...记得动手实践,理论与实践相结合,才能更好地掌握Swing组件的应用。
WindowAdapter 是 Java Swing 中的一个窗口事件监听器,继承自 java.awt.event.WindowAdapter 类。WindowAdapter 提供了一个基本的窗口事件监听,可以用来监听窗口事件。在上面的代码中,我们可以看到 WindowAdapter...
5. **模型-视图-控制器(MVC)架构**:Swing组件遵循MVC设计模式,其中组件的行为(控制器)与显示(视图)是分离的,数据(模型)独立于两者。这种设计使得代码更易于维护和扩展。 6. **可定制性**:Swing组件高度...
在本实验报告中,主题是“Java实验报告之图形用户界面程序设计与AWT/Swing组件”,主要目标是让学生熟悉Java GUI设计原理、程序结构,掌握AWT和Swing组件的功能,以及学会应用这些组件来设计应用程序,特别是实现一...
"基于Java swing组件实现简易计算器" 本文主要介绍了基于Java swing组件实现简易计算器的知识点,以下是相关知识点的总结: 1. JFrame组件:JFrame是Java swing组件中的一种顶层容器,用于创建一个窗口框架。通过...
在上面的代码中,我们创建了一个名为 JFrameDemo 的 JFrame 实例,并添加了窗口监听器、窗口焦点监听器和窗口状态监听器来监听窗口的各种事件。 结论 Swing 中的重量级容器和轻量级容器都是非常有用的组件,它们...
Swing使用事件监听器模式来处理用户交互。例如,对于按钮,可以添加ActionListener,当用户点击按钮时,会触发actionPerformed()方法。在该方法中编写处理用户操作的代码。 ```java button.addActionListener(new ...
Swing组件大全是一个深入探讨Java Swing库的资源,它涵盖了Swing提供的几乎全部组件,同时结合了数据库操作和第三方库jxl与TableLayout的使用。Swing是Java Foundation Classes (JFC)的一部分,用于构建图形用户界面...
Swing组件的事件处理机制是基于Java的事件监听器模型。每个组件都可以注册一个或多个监听器,监听特定的用户操作。例如,为JButton添加ActionListener,当用户点击按钮时,会触发监听器中的actionPerformed方法,...
Swing组件的布局管理器也是其重要部分,如FlowLayout、BorderLayout、GridLayout、CardLayout和GridBagLayout等,它们负责决定组件在容器中的位置和大小。开发者可以根据需求选择合适的布局管理器,以达到理想的效果...
Java Swing 常用事件和监听器接口 Java Swing 是一个功能强大的图形用户界面(GUI)工具包,它提供了许多事件和监听器接口,帮助开发者更好地处理用户交互。下面是 Java Swing 中常用的事件和监听器接口。 1. ...
5. 添加事件监听器,处理用户与组件的交互。 6. 将窗口设置为可见,通过`setVisible(true)`。 在实际开发中,还可以利用Swing的高级特性,如`JOptionPane`提供简单的对话框,`JTable`和`JScrollPane`用于显示表格...
标题提到的"几个漂亮的SWING组件(源代码)"很可能是包含了一些自定义或者美化过的Swing组件示例,供开发者参考学习。 在Swing组件库中,有许多基础和高级组件,包括但不限于: 1. **JFrame**: 这是大多数Swing...
本篇文章将深入探讨Java Swing组件集合,帮助初学者更好地理解和使用这些组件。 首先,Swing 提供了丰富的组件集,包括按钮(JButton)、文本框(JTextField)、标签(JLabel)、复选框(JCheckBox)、单选按钮...
这个“Swing组件教案及示例程序”压缩包文件显然包含了关于如何使用Swing来创建丰富的桌面应用程序的教学材料和实际示例。Swing提供了一套组件,如按钮、文本框、菜单等,使得开发者能够构建出美观且功能丰富的应用...
本主题主要关注如何自定义Swing组件,以便满足特定需求或实现独特功能。下面我们将深入探讨自定义Swing组件的基本概念、步骤以及相关知识点。 一、Swing组件基础 Swing组件是构建GUI的基础,包括按钮(JButton)、...
在"java基于Swing组件的GUI设计"这个主题中,我们将深入探讨如何利用Swing进行GUI开发。 首先,Swing组件是轻量级的,它们大部分是用Java实现的,这使得Swing应用程序可以在不同的操作系统上保持一致的外观和行为。...
9. **事件处理**:Swing通过EventListener接口和EventObject类实现了事件驱动编程,用户可以通过实现特定的监听器接口来处理组件上的事件,如ActionListener、MouseListener等。 10. **自定义外观**:通过LookAnd...
事件监听器(如ActionListener、MouseListener、KeyListener等)可以捕获并处理这些事件。通过实现或继承相应的接口,开发者可以编写处理事件的代码。 以上就是Swing中的一些核心组件和概念。学习Swing,不仅要知道...