构造器方法,窗体,swing中的事件机制实现
1.说明构造器方法和一般方法的区别,何谓方法重载。
当我们创建某个类的对象时,一般的格式是: 类名 变量名=new 类名();
如 Student st1 =new Student();
这里的Student() 就叫做构造器方法。
与一般方法的区别:
构造器严格的说不算是”方法“,只是因为它也可以传入参数,构造器方法没有任何返回值的定义,
且必须与类名字相同。构造器方法只有在创建对象的时候调用——对于一个对象而言,他的构造器只能
调用一次。构造器也可以重载,就像方法一样,定义可以传入不同方法的构造器,这也是构造器方法
的主要用途:在创建对象时,初始化某些属性值。
要注意的是,每个类都会有一个默认的无参构造器,但如果重新写了一个有参数的构造器,则默认的
无参构造器不能够调用,除非在类定义中显示声明。
每一个类都有一个默认的无参构造器,即通过new 类名()调用而创建对象。
我们也可以给自己的类重新定义构造器方法,这叫做构造器方法的重载。
public class Student{
//无参构造器方法
public Student(){}
//一参,初始化name属性值
public Student(String name){
this.name=name;
}
//两参,初始化name,km属性值
public Student(String name,String km)(
this.name=name;
this.km=km;
)
public String name="未知姓名";
private String km="未知科目";
}
方法的重载
在一个类中,可以定义多个同名,但参数类型和数量方法不同的方法,叫做方法的重载。
例如:在Student类中,可以定义方法,代码如下。
public void study (int hour,String k){
km=k;
scro+=hour/3;
if(scro>5){
toSleep(hour/3);
}
}
public void study(int hour){
System.out.println("不知道在学什么");
}
public void study(){
System.out.println("什么都不学");
}
}
2.如何写一个简单的登陆界面
第一步:
public class JFrameTest {
public static void main(String [] args){
JFrameTest tf=new JFrameTest();
tf.showFrame();
}
//显示一个窗体界面的方法
public void showFrame(){
//构造一个窗体对象
javax.swing.JFrame frame=new javax.swing.JFrame();
//设置标题
frame.setTitle("第一个界面程序");
//设置窗体大小
frame.setSi(200,200);
//让窗体显示出来买这句话要放到最后面
}
这时候如果点击“X”窗体不会退出,
所以要在程序中加上一句:
frame1.setDefaultCloseOperation(3);
此程序才会关闭
第二步;加组件
public class JFrameTest {
public static void main(String [] args){
JFrameTest tf=new JFrameTest();
tf.showFrame();
}
//显示一个窗体界面的方法
public void showFrame(){
//构造一个窗体对象
javax.swing.JFrame frame=new javax.swing.JFrame();
//设置标题
frame.setTitle("第一个界面程序");
//让窗体显示出来买这句话要放到最后面
frame.setDefaultCloseOperation(3);
//创建一个一定长度的文本
Java.swing.JLabel label = new Java.swing.JLabel("账号:");
}
//创建按钮
Java.swing.JButton button=new Java.swing.JButton("登陆");
frame.setSi(200,200);
frame.setVisible(true);
重新运行程序,登陆按钮占据了整个窗体界面,别的组件都看不见了,这是因为我们没有告诉frame
对象,如何摆放在它上面的元素组件。
代码示例 public class JFrameTest {
public static void main(String [] args){
JFrameTest tf=new JFrameTest();
tf.showFrame();
}
//显示一个窗体界面的方法
public void showFrame(){
//构造一个窗体对象
javax.swing.JFrame frame=new javax.swing.JFrame();
//设置标题
frame.setTitle("第一个界面程序");
//在放置元素组件之前,要创建并给窗体加上布局管理器:
//创建流式布局管理器
java.awt.FlowLayout f1 =new java.awt.FlowLayout();
this.setLayout(f1);
//让窗体显示出来买这句话要放到最后面
frame.setDefaultCloseOperation(3);
//创建一个一定长度的文本
Java.swing.JLabel label = new Java.swing.JLabel("账号:");
}
//创建按钮
Java.swing.JButton button=new Java.swing.JButton("登陆");
frame.setSi(200,200);
frame.setVisible(true);
}
这样一个有组件的窗体就OK了。
下面总结一下:
设置组件对象属性的方法:set<要设置的组件的属性值(设置的值的类型)。
取得组件的属性值类型 get <要设置的组件的属性值>().
取得组件boolean型属性值的方法: boolean is <组件的属性值》()
在组件上加上一个组件的方法: void add<要加的组件类型>(类型 组件名)。
3.swing中的事件机制实现
①事件的概念
事件处理是界面处理的基本功能,当用户点击鼠标或按下键盘的时候,Swing界面上获得焦点的组件
都会收到一个事件通知,这个事件通知是Swing体系内部发出的,界面就会根据收到的通知,作出
相应的处理,比如弹出对话框或读取用户输入。
②一个简答的事件处理流程
个简答的事件处理流程:在一个按钮对象点击鼠标,系统即发出事件通知,这个事件通知就会被一个叫做EventObject
(事件对象)通知给对这个事件感兴趣的处理对象EventListener(事件监听器),事件监听器中根据这个事件对象的
数据,将读到的字符串显示在另外一个JLabel上、
实践过程:JButton的事件监听器是一个实现了ActionListener接口的对象:将这个对象通过调用JButton中的AddActionListener
方法传入,当按下按钮时,我们所实现接口中的actionPerformed放法就会被调用, 代码示例如下:
public class dengluListener implements java.awt.event.ActionListener
{
private javax.swing.JTextField jt;
private javax.swing.JPasswordField mm;
public dengluListener(javax.swing.JTextField jt,javax.swing.JPasswordField mm){
this.jt=jt;
this.mm=mm;
}
//监听器中的方法通过事件触发自动调用
public void actionPerformed(ActionEvent e){
//点登陆得到帐号和密码
//得到输入框中的数据
String name =jt.getText();
String mima=mm.getText();
System.out.println("|||"+name);
System.out.println(">>>"+mima);
}
还需要一个登陆界面类,代码如下public class denglujiemian extends javax.swing.JFrame{
public static void main(String args[]){
denglujiemian aa =new denglujiemian();
aa.showdenglujiemian();
}
//显示登录窗体的方法
public void showdenglujiemian(){
this.setTitle("魔兽争霸");
this.setSize(300, 400);
this.setDefaultCloseOperation(3);
java.awt.FlowLayout f1 =new java.awt.FlowLayout();
this.setLayout(f1);
//加组件
javax.swing.JLabel nameLabel= new javax.swing.JLabel("帐号:");
javax.swing.JTextField nameField =new javax.swing.JTextField(20);
javax.swing.JLabel mimaLabel=new javax.swing.JLabel("密码");
javax.swing.JPasswordField mimaField= new javax.swing.JPasswordField(20);
javax.swing.JButton loginBtn =new javax.swing.JButton("登录");
this.add(nameLabel);
this.add(nameField);
this.add(mimaLabel);
this.add(mimaField);
this.add(loginBtn);
this.setVisible(true);
dengluListener jiantingqi = new dengluListener(nameField,mimaField);
//给按钮加上监听器对象
loginBtn.addActionListener(jiantingqi);
}
这样,在窗体中输入账号,密码以后,程序就会输出用户输入的内容。
分享到:
相关推荐
- 在其他窗口的监听器中,通过`addPropertyChangeListener()`或`addEventListener()`方法注册监听器,当事件发生时,监听器的对应方法会被调用,从而实现数据的同步更新。 5. **MessageTest**: - 压缩包中的...
Java Swing 窗体布局是Java图形用户界面(GUI)设计的重要组成部分,它决定了组件在窗口中的排列方式和外观。Swing提供了多种布局管理器,每种都有其独特的特性和用途,下面我们将详细讨论这些布局管理器。 1. **...
在swing中,窗体拖拽和拉伸是通过实现MouseListener和MouseMotionListener接口来实现的。MouseListener用于监听鼠标点击事件,而MouseMotionListener用于监听鼠标移动事件。通过这两个接口,我们可以捕捉到鼠标的...
* 创建窗体有两种方法,先来介绍第一种方法,可以直接使用 JFrame 窗口类的构造器来创建一个简单的窗体。 8. 创建 Frame 窗体的实例: * 使用 JFrame 窗口类的构造器来创建一个 Frame 窗体的实例。 * 设置窗口的...
本文将详细介绍两种在Java Swing中实现窗体添加背景图片的方法,并探讨Swing重绘过程中的`repaint()`和`updateUI()`的区别。 方法一:利用JLabel加载图片 此方法依赖于JLabel组件的`setIcon(Icon icon)`方法来加载...
总结起来,实现Java中窗体的拖动功能,主要涉及对鼠标事件的监听和处理,以及自定义组件的行为。通过在组件上添加鼠标监听器,可以捕捉到用户的拖动行为,从而动态调整窗体的位置,实现拖动效果。如果需要进一步优化...
在Swing中,事件监听器模式被广泛应用于组件间的交互,通过注册监听器响应用户的操作行为,如点击按钮开始复制操作。 此外,实现文件复制功能时,程序还需调用I/O相关的类和方法来完成实际的复制过程。这通常涉及到...
这种方法与第二种方法相似,但是这里是在构造函数中直接添加监听器,使得代码结构更为清晰。 **代码示例(续接):** ```java import java.awt.*; import java.awt.event.*; public class Frame1 extends Frame {...
java Swing窗体版多线程下载程序编写示例,多线程下载的实现, 将网络URL中指定的网络文件下载到本地文件中保存。 本代码中将完成新建任务构造器、配置文件构造器,保存下载信息,获取配置文件名,设置在前台显示...
本篇文章详细介绍了 焦点事件及其监听器,包括其使用场景和实现方法,幫助讀者更好地理解焦点事件及其监听器的使用。 總之,本資源匯總了 Java Swing 的各個方面,幫助讀者更好地理解 Java Swing 的使用和实现方法...
例如,下拉列表框(ComboBox)和列表框(ListBox)是Swing中的常见组件,它们都具有多个构造方法,这允许开发者根据需要以不同的方式初始化组件。 在制作下拉菜单框时,可以通过实现ComboBoxModel接口来构造下拉...
布局管理器在Swing中扮演着重要角色,它们帮助开发者自动调整组件的位置和大小。例如,`FlowLayout`按照从左到右,从上到下的顺序排列组件,`BorderLayout`将组件分为五个区域(北、南、东、西、中),`GridLayout`...
在Swing应用中,选择合适的布局管理器至关重要,因为它们直接影响到用户界面的外观和交互体验。FlowLayout适合简单的按钮组,BorderLayout适合主窗口的分区域设计,GridLayout适用于需要整齐网格排列的场景,而...
`JSplitPane`是Swing中的一个组件,用于实现分隔窗格,允许用户通过拖动分隔线来调整两个窗格之间的大小比例。下面是一个简单的`JSplitPane`应用示例: ```java import java.awt.*; import javax.swing.*; public ...
Java Swing JToggleButton开关按钮的...本文中,我们详细介绍了 Java Swing 中的 JToggleButton 组件的实现,包括其构造方法、常用方法、监听器等,并通过示例代码,展示如何使用 JToggleButton 实现开关按钮的效果。
在Swing中,`JFrame`类是最基本的窗口类,用于创建应用程序的主要窗体。例如,以下代码展示了如何创建一个简单的窗体: ```java JFrame form = new JFrame("我的第一个窗体"); form.setVisible(true); ``` 这段...
- 在事件响应方法中,调用了`StudentManageImple`和`CourseManageImple`的实例方法来实现具体功能。例如,退出系统时,调用`dispose()`关闭窗口,并通过`System.exit(0)`退出应用程序。其他按钮的方法则调用了对应...
这个过程涉及到了Java编程语言的基础知识,包括Java Swing组件的使用,事件处理机制以及如何实现用户界面布局和功能。 首先,文档指出Java提供了一套图形用户界面设计的API,即AWT(Abstract Window Toolkit),它...
在 Swing 教程中,我们将学习如何使用 Swing 组件来创建 GUI 程序,掌握常用的基本 Swing 组件的使用方法,掌握常用的布局管理器,并学习如何使用面板(JPanel)实现复杂布局。 GUI 的概念 GUI(Graphical User ...
`ActionEvent`是Java AWT和Swing中的一种基本事件类型,通常由可以执行动作的组件(如按钮、菜单项)生成。在事件处理中,我们需要为这些组件添加`ActionListener`,并重写`actionPerformed`方法,以响应用户的操作...