寒假实训第十天

主要学习了监听器和用户登录界面

事件处理


事件和监听器


每当一个按钮按下时,实际上按钮的状态就发生了改变,那么此时就会产生一个事件,而如果要想处理此事件则就需要事件的监听者不断的监听事件的变化,并根据这些事件进行相应的处理。在Swinga编程中,依然使用了最早AWT的事件处理方式,所有的事件类(基本上任意的一个组件都有对应的事件)都是EventObject类的子类

窗体事件


VindowListener是专门处理窗体的事件监听接口,一个窗体的所有变化,例如:窗口打开、关闭等都可以使用这个接口进行监听。

import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class WindowTest1 {
    public static void main(String[] args) {

        JFrame jFrame = new JFrame("大学");
        Container cont = jFrame.getContentPane();

        jFrame.addWindowListener( new WindowListener() {
            @Override
            public void windowOpened(WindowEvent e) {
                System.out.println("窗口打开了");
            }

            @Override
            public void windowClosing(WindowEvent e) {
                System.out.println("窗口正在关闭了");

            }

            @Override
            public void windowClosed(WindowEvent e) {
                System.out.println("窗口关闭了");

            }

            @Override
            public void windowIconified(WindowEvent e) {
                System.out.println("窗口最小化了");

            }

            @Override
            public void windowDeiconified(WindowEvent e) {
                System.out.println("窗口恢复正常");

            }

            @Override
            public void windowActivated(WindowEvent e) {
                System.out.println("窗口活动了");

            }

            @Override
            public void windowDeactivated(WindowEvent e) {
                System.out.println("窗口不活动了");

            }
        });
        Dimension dimension = new Dimension(400,400);
        jFrame.setSize(dimension);
        Point point = new Point(250,300);
        jFrame.setLocation(point);
        jFrame.setBackground(Color.BLACK);

        jFrame.setVisible(true);
    }
}

动作事件及监听处理


一个按钮要想让其变得有意义,就必须使用事件处理在Swingl的事件处理中,可以使用ActionListener接口处理按钮的动作事件,ActionListener接口只定义了一个方法。

 

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class ActionListenerTest {
    public static void main(String[] args) {
        JFrame frame = new JFrame("大学");

        JButton button = new JButton("点击我");
        JLabel label = new JLabel("大学");
        label.setFont(new Font("serief",Font.BOLD,20));
        JTextField field = new JTextField();
        Panel panel = new Panel();
        panel.setLayout(new GridLayout(1,3,5,5));
        panel.add(label);
        panel.add(field);
        panel.add(button);
        frame.add(panel);
        button.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println("点击成功");
                label.setText(field.getText());
            }
        });
        frame.setSize(400,100);
        frame.setLocation(500,500);
        frame.setVisible(true);
    }
}

键盘事件及监听处理


在Swing的事件处理中也可以对键盘的操作进行监听,直接使用KeyListener接口即可。此接口定义了如下的方法。

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

public class KeyListenerTest {
    public static void main(String[] args) {
        JFrame frame = new JFrame("大学");


        JTextArea text = new JTextArea();
        JScrollPane pane = new JScrollPane(text);
        text.setFont(new Font("serief",Font.BOLD,40));
        text.addKeyListener(new KeyListener() {
            @Override
            public void keyTyped(KeyEvent e) {

            }

            @Override
            public void keyPressed(KeyEvent e) {


            }

            @Override
            public void keyReleased(KeyEvent e) {

            }
        });
        frame.add(pane);


        frame.setSize(400,400);
        frame.setLocation(500,500);
        frame.setVisible(true);
    }
}


鼠标事件及监听处理


如果想对一个鼠标的操作进行监听,例如,鼠标按下、松开等,则可以实现MouseListener接口
 

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class MouseListenerTest {
    public static void main(String[] args) {


        JFrame jFrame = new JFrame("大学");
        Container cont = jFrame.getContentPane();
        JButton button = new JButton("点击我!!");
        button.setBounds(100,150,200,100);
        jFrame.setLayout(null);

        button.addMouseListener(new MouseListener() {
            @Override
            public void mouseClicked(MouseEvent e) {
                System.out.println("点击成功");
            }

            @Override
            public void mousePressed(MouseEvent e) {
                System.out.println("今天好!!");

            }

            @Override
            public void mouseReleased(MouseEvent e) {
                System.out.println("明天也要好!!");

            }

            @Override
            public void mouseEntered(MouseEvent e) {

            }

            @Override
            public void mouseExited(MouseEvent e) {

            }
        });
        Dimension dimension = new Dimension(400,400);
        jFrame.setSize(dimension);
        Point point = new Point(250,300);
        jFrame.setLocation(point);
        jFrame.setBackground(Color.BLACK);
        jFrame.add(button);

        jFrame.setVisible(true);
}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值