监听器、接口、数组在界面中的运用

监听器

  • 监听按钮是指菜单这一类的组件的监听器
  • 动作监听器:java.awt.even.ActionLisenter
    使用其他包中的类,如:
java.awt.even.ActionLisenter
java.awt.Color

在类之前导入类所在的包路径:
import javax.swing.JFrame;

interface:接口

  • interface不是一个类

  • 与类同级

  • 方法没有方法体

  • 没有属性变量,只有静态常量
    - 静态常量:不需要对象调用的,直接有类名调用
    - 不属于对象,只属于类,且只有一份

  • 可以声明,不可以创建对象
    - 接口类型 接口变量名
    - 只可以声明,如:ActionLisenter xx;
    - 创建对象不可以=new ActionLisenter();

  • 接口使用格式:
    - 创建一个类 implements(实现)接口
    - 把接口中所有的抽象方法复制过来,去分号,改打括号
    - 此处加上点击按钮之后需要执行的代码
    - 与所需要监听的按钮或者菜单对象绑定
    -首先创建这个类的ButtonAction对象
    ButtonAction ba=new ButtonAction();
    -使用组件对象调用addActionLisenter方法绑定这个对象
    btn.addActionLisenter(ba);
    有方法但没有方法体,是以分号直接结尾
    -作用: 点击按钮,或者菜单是调用

数组

  • 数据结构:数组

  • 储存多个数据的集合结构

  • 数组标识:[ ]

  • 声明方式:数据类型[ ]数组名

  • 定义赋值:
    - 原始:数组名={元素1,元素2,···}可直接赋值,空间和数据也都在里面
    - 数组名=new 数据类型[长度(所能存储的元素个数)]

  • int[] str;

  • str = {1,2,3,4,5,6,7,7,8,9};// 其长度:10

  • str= new int[100];// 其长度为10 int类型的空数组
    下标:

  • 数据中的数据需要:存和取,下标会从0开始,每次移动一格

  • 假设在下标为8的位置存入一个数字为10,如:str[8]=10
    int number=str[4]
    遍历: for(int i=0;i<10;i++){ sout(str[i]); }

Code
  • 创建一个类名继承JFrame,设置一个方法,设置窗体的尺、标题、居中、退出进程和流式布局
  • 设置其标签、文本框及其尺寸,将其添加到窗体对象中,使得它能够被调用添加
  • 设置两个按钮,“登录”和“注册”,添加到窗体对象中,创建一个监听器对象,将所设置的按钮调用添加监听器对象到动作监听器当中,使得他们能够在窗体对象中实现
  • 将按钮、标签、文本框由局部变量变为全局变量,才能在下面的代码中能够被直接调用
  • 可直接调用JFrame中的paint方法,子类调用父类中的paint方法,静态对象imageIcon等于一个新的imageIcon调用得到的Image,让其所添加的图片能够被图像对象调用,设置其宽高,分别使按钮、标签、文本框调用刷新的repaint()
  • 设置主方法,可在开头或者结尾直接设置
public class Fare extends JFrame{
    javax.swing.JButton jButton;
    javax.swing.JLabel jLabel;
    javax.swing.JTextField jTextField;
    javax.swing.JLabel jLabel1;
    javax.swing.JTextField jTextField1;
    javax.swing.JButton jButton1;

    public void name(){
        javax.swing.JFrame jf=this;//new javax.swing.JFrame();
        jf.setSize(380,580);
        jf.setTitle("登陆界面");
        jf.setLocationRelativeTo(null);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        java.awt.FlowLayout flow=new FlowLayout();
        jf.setLayout(flow);
        
     jLabel=new JLabel("账号:");
        jf.add(jLabel);
         jTextField=new JTextField();
        java.awt.Dimension dimension=new Dimension(300,20);
        jTextField.setPreferredSize(dimension);
        jf.add(jTextField);
        jLabel1=new JLabel("密码:");
        jf.add(jLabel1);
       jTextField1=new JTextField();
        java.awt.Dimension dimension1=new Dimension(300,20);
        jTextField1.setPreferredSize(dimension1);
        jf.add(jTextField1);
        jButton=new javax.swing.JButton("登录");
        jf.add(jButton);
        jButton1=new javax.swing.JButton("注册");
        jf.add(jButton1);
        FareLisenter fareLisenter=new FareLisenter();
        jButton.addActionListener(fareLisenter);
        jButton1.addActionListener(fareLisenter);
        jf.setVisible(true);
    }

    @Override
    public void paint(Graphics g) {
        super.paint(g);

        ImageIcon imageIcon = new ImageIcon("img/DuoLa.jpg");
        Image img = imageIcon.getImage();
        g.drawImage(img,0,0,this.getWidth(),this.getHeight(),null);

        jButton.repaint();
        jLabel.repaint();
        jTextField.repaint();
        jLabel1.repaint();
        jTextField1.repaint();
        jButton1.repaint();
    }

    public static void main(String[] args){
        Fare fare=new Fare();
        fare.name();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值