Java学习进程2 Java学习进程2图形化编程和监听器的使用图形化编程设计带操作界面的应用程序 java.awtjava.swing标准库当前这门语言设计好的基础功能组件登录界面:账号/密码输入框 登录、注册按钮 窗体 图片查看源代码ctrl点击鼠标左键数据类型1.基本类型8个整型byte/short/int/long) 浮点型(float/double) 字符型(char) 布尔型(boolean)2.引用类型/自定义类型类(class) 接口(interface) 数组3.查看返回值类型的方法创建对象时new前面的类名就是这个对象的数据类型。监听器设计界面程序的交互功能监听发生什么动作1.事件源当前动作所发生的组件(swing)2.监听器动作监听器方法addActionListener()3.绑定事件处理类接口1.接口是一种特殊的继承类定义的都是抽象方法有方法名没有方法体2.接口中的常量即为特殊的变量只能写public3.接口的书写格式publicclass子类implements接口,接口,,{}注接口不能创建对象要重新定义类实现接口重写接口中的所有抽象方法example完成登录界面,账号密码同时验证验证后显示登陆成功或失败的新界面Login类packagecom.yw.oop0501;//若只有一个写成import javax.swing.JFrameimportjavax.swing.*;importjava.awt.*;/** * author YAN * date 2026/5/1 21:26 * description */publicclassLogin{//属性变量//方法函数显示登录界面的方法publicvoidshowUI(){//窗体JFramejfnewJFrame();//像素点 分辨率jf.setSize(420,500);jf.setTitle(登录界面);jf.setLocationRelativeTo(null);//居中显示jf.setDefaultCloseOperation(3);//退出进程//流式布局管理器控制位置以及大小FlowLayoutflownewFlowLayout();jf.setLayout(flow);//设置窗体为流式布局//加载图片//ImageIcon image new ImageIcon(D:\\PHOTO\\微信图片_20260501213802_35_1.jpg);//按比例缩放适配标签大小ImageIconoriginalIconnewImageIcon(D:\\PHOTO\\微信图片_20260501213802_35_1.jpg);ImagescaledImageoriginalIcon.getImage().getScaledInstance(360,150,Image.SCALE_SMOOTH);ImageIconscaledIconnewImageIcon(scaledImage);//标签//JLabel jla new JLabel(image);JLabeljlanewJLabel(scaledIcon);jla.setPreferredSize(newDimension(360,150));jf.add(jla);//提示信息JLabelusernewJLabel(账号);jf.add(user);//账号框文本框//对象的数据类型就是前面的类名JTextFieldjtfnewJTextField();//除了JFrame其他组件设置大小都是该方法DimensiondmnewDimension(340,30);jtf.setPreferredSize(dm);jf.add(jtf);//密码框JLabeluser1newJLabel(密码);jf.add(user1);JTextFieldjtf1newJTextField();Dimensiondm1newDimension(340,30);jtf1.setPreferredSize(dm1);jf.add(jtf1);//按钮JButtonjbunewJButton(登录);jf.add(jbu);JButtonjbu1newJButton(注册);jf.add(jbu1);//设置可见所有的组件在可见之前添加jf.setVisible(true);//给登录按钮添加动作监听器方法//接口不能直接创建对象重新定义类实现接口重写接口中的抽象方法ButtonListenerlistenernewButtonListener();jbu.addActionListener(listener);//把jtf传递给listener对象listener.userTextjtf;//把user1传递给listener对象listener.userLabeljtf1;//把登录窗口传给listener对象(要关闭旧窗口开新窗口必须传jf若不需要关闭旧窗口就不需要传jf)listener.loginFramejf;}//主函数publicstaticvoidmain(String[]args){//在主函数中类里面的属性和方法必须通过对象调用LoginlonewLogin();lo.showUI();}}ButtonListener类packagecom.yw.oop0501;importjavax.swing.*;importjava.awt.event.*;//import java.awt.event.ActionEvent;//import java.awt.event.ActionListener;/** * author YAN * date 2026/5/6 23:35 * description 事件处理类 */publicclassButtonListenerimplementsActionListener{//默认的注册账号密码publicStringname666;publicStringpassword888;//引用传递初始化属性publicJTextFielduserText;//保存传递过来的账号框对象publicJTextFielduserLabel;//保存传递过来的密码框对象//接收登录窗口对象用来关闭publicJFrameloginFrame;//重写接口中的抽象方法//事件处理方法publicvoidactionPerformed(ActionEvente){//获取输入账号密码StringuserNameuserText.getText();StringuserPassuserLabel.getText();//验证账号密码//比较字符串内容是否一致必须用equals方法if(name.equals(userName)password.equals(userPass)){//关闭原登录窗口loginFrame.dispose();// System.out.println(yes);//显示登录成功的界面//新建登录成功界面JFramejfOKnewJFrame(登录界面);jfOK.setSize(420,500);jfOK.setLocationRelativeTo(null);//居中显示jfOK.setDefaultCloseOperation(3);//退出进程JLabellabOKnewJLabel(登录成功!);jfOK.add(labOK);//设置可见所有的组件在可见之前添加jfOK.setVisible(true);}else{//System.out.println(no);JFramejfNOnewJFrame(登录界面);jfNO.setSize(420,500);jfNO.setLocationRelativeTo(null);//居中显示jfNO.setDefaultCloseOperation(3);//退出进程JLabellabNOnewJLabel(登录失败!);jfNO.add(labNO);//设置可见所有的组件在可见之前添加jfNO.setVisible(true);}//System.out.println(点击按钮userName userName);//System.out.println( userPass userPass);}}

本月热点