2021-6-20

学习java第二十八天

文本框

package demo01;

import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

public class TestText extends JFrame{
public TestText() {
	Container container=this.getContentPane();
	JTextField textfield=new JTextField("Hello  world");
	JTextField textfield2=new JTextField("大数据五班");
	container.add(textfield,BorderLayout.NORTH);
	container.add(textfield2,BorderLayout.SOUTH);
	
	this.setVisible(true);
	this.setSize(500,350);
	this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
	new TestText();
}
}

密码框

package Demo01;

import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JPasswordField;

public class TestTextDemo02 extends JFrame{
	public TestTextDemo02() {
		
		Container container =this.getContentPane();
		
		JPasswordField passwordField = new JPasswordField();
		passwordField.setEchoChar('*');
		
		
		
		container.add(passwordField);
		
		
		
		this.setVisible(true);
		this.setSize(500,350);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
	}
	
	
	public static void main(String[] args) {
		new TestTextDemo02();
	}
}

事件的类型和处理方法
AWT和Swing定义了多种类型的事件,这些事件大致可分为以下两大类型。
(1)低级事件。
这类事件指由窗口系统发生的事件或者底层输入而产生的事件,主要包括组件事件(跟踪组件位置、大小可见性的变化)、容器事件(反应容器中组件的添加和删除)、焦点事件(组件获得或失去键盘焦点,拥有键盘的组件可响应键盘的输入)、窗口事件(反映窗口或对话框的基本状态)、鼠标事件(用户使用鼠标进行交互)、键盘事件(用户使用键盘进行输入)等。
(2)语义事件。
这类事件是指低级事件以外的具有丰富含义的与组件有关的事件,如单击按钮、滚拖动滚动条等。这些世界源于图形用户界面,其含义由程序设计员赋予,如单击“确定”按钮将确认刚才的操作。按“取消”按钮将撤销刚才的操作。

(1)低级事件

FocusEvent: 在组件获得焦点或失去焦点时产生的事件。
MouseEvent: 用户对鼠标操作所产生的事件。
KeyEvent: 用户对键盘操作所产生的事件。
WindowEvent用户对窗口操作所产生的事件。
(2)语义事件

ActionEvent激活组件事件。
ItemEvent: 选项事件。
AdjustmentEvent : 调节事件。
ComponentEvent : 组建事件。
ContainerEvent : 窗口事件。
TextEvent : 文本框事件。
与低级事件一样,每一种语义事件都对应一个监听器接口,这些监听器接口同样是EventListener接口的子接口。
(3)键盘事件的处理

键盘操作可分为三类,用不同的ID标识,当发生键盘事件时,需要给出事件的标识KEY_EVENT_MASK及对应的事件ID。这三类事件的ID及事件描述如下:

①KEY_PRESSED: 当按下键盘中的某个键时发生该事件。
②KEY_RELEASED: 当释放按键时发生该事件。
③KEY_TYPED: 当按下键盘中的字符键(非系统键)时发生该事件。
处理键盘事件的监听器接口是KeyListener接口。在这个接口中,声明了对应上述3种事件的成员方法。

①KeyPressed(KeyEvent) ,用于处理KEY_ PRESSED事件。
②KeyReleased( KeyEvent),用于处理KEY_ RELEASE事件。
③KeyTyped(KeyEvent),用于处理KEY TYPED事件。
(4)鼠标事件的处理
鼠标事件由MouseEvent类描述。在这个类中,提供了下面几个可以获得鼠标信息的成员方法。

①int getX()和int getY(),返回发生鼠标事件时光标所处的坐标位置。
②Point getPoint(),以Point类型的形式返回发生鼠标事件时光标所处的位置。
③int getClickCount(),返回单击鼠标的次数。
与键盘事件不同,鼠标事件分为两类:一类是鼠标事件,用MOUSE_ EVENT MASK标识;另一类是鼠标移动事件,用MOUSE_ MOTION_ EVENT_ MASK标识。它们分别对应MouseListener接口和MouseMotionListener接口。下面列出了这两类鼠标事件所包含的且体事件ID及描述。

①COMOUSE_CHICKED, 当单击鼠标时发生该事件。
②MOUSF_PRESSDS当按下鼠标时发生该事件。
③MOUSE_ENTERED当鼠标指针进入组件显示区域是发生该事件。
④MOUSE_EXITED:当鼠标指针退出组件显示区域时发生该事件。
⑤MOUSE_RELEASED:当释放鼠标时发生该事件。
⑥MOUSE_MOVE:当移动鼠标时发生该事件。
⑦MOUSE_DRAGGED:当拖动鼠标时发生该事件。
其中,最后两个ID属于MOUSE MOTION EVENT MASK事件类别。
在Mouselistener 接口中声明了5个成员方法,对应处理属于MOUSER EVENTMASK事件类别的5个不同的事件。

①mouseClicked( MouseEvent) :用于处理MOUSE CLICKED事件。
②mousePressed( MouseEvent):用于处理MOUSE PRESSED 事件。
③mouseReleased( MouseEvent) :用于处理MOUSE_ RELEASED事件。
④mouseEntered( MouseEvent):用于处理MOUSE_ ENTERED事件。
⑤mouseExited( MouseEvent) :用于处理MOUSE EXITED 事件。
在MouseMotionListener接口中声明了两个处理MOUSE MOTION EVENT _MASK事件的成员方法。

①mouseMove( MouseEvent):用于处理MOUSE MOVE事件。
②mouseDraged(MouseEven)用于处理MOUSE DRAGED事件。

package com.hg.day28.demo02;

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

public class TextActionEvent {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        frame.setSize(400,400);
        frame.locate(400,300);

        MyActionListener myListener = new MyActionListener();
        Button button= new Button();
        button.addActionListener(myListener);
        frame.add(button,BorderLayout.CENTER);
        frame.pack();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    }
}
class MyActionListener implements ActionListener {

    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("大数据五班");
    }
}
package demo02;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.WindowConstants;

public class TextAtionTwo {
	public static void main(String[] args) {
		JFrame frame =new JFrame("开始--停止");
		frame.setSize(400,400);
		frame.locate(400, 300);
		Button button1 =new Button("start");
		Button button2 =new Button("stop");
		 
		MyMonitor myMonitor= new MyMonitor();
		button1.addActionListener(myMonitor);
		button2.addActionListener(myMonitor);
	
		frame.add(button1,BorderLayout.WEST);
		frame.add(button2,BorderLayout.SOUTH);
		frame.pack();
		frame.setVisible(true);
		frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		
	}

}
class MyMonitor implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO 自动生成的方法存根
		//System.out.println(e.getActionCommand("大数据2005"+e.getActionCommand()));
		if(e.getActionCommand().equals("stop")) {
			System.out.println("我要学习了");
		}else {
			System.out.println("我要休息了");
		}
	}
}

文本域

package com.hg.day28.demo02;

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

public class TextText01 {
    public static void main(String[] args) {
        new MyFrame();
    }
}
class MyFrame extends JFrame {
    public MyFrame() {
        TextField textField = new TextField();
        this.add(textField);
        MyActionListener2 myActionListener2=new MyActionListener2();
        textField.addActionListener(myActionListener2);
        textField.setEchoChar('#');
        this.setVisible(true);
        this.pack();
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
}
class MyActionListener2 implements ActionListener{

    @Override
    public void actionPerformed(ActionEvent e) {
        TextField field = (TextField)e.getSource();
        System.out.println(field.getText());
        field.setText("");
    }
}

键盘监听

package demo03;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

import javax.swing.JFrame;

public class TestKeyListener {
	public static void main(String[] args) {
		new KeyFrame();
	}

}
class KeyFrame extends JFrame{
	public KeyFrame() {
		this.setBounds(10,10,330,410);
		this.setVisible(true);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		this.addKeyListener(
				new KeyAdapter() {
					@Override
					public void keyPressed(KeyEvent e) {
						// TODO 自动生成的方法存根
						int keycode=e.getKeyCode();
					//	System.out.println(keycode);
						if(keycode==KeyEvent.VK_UP) {
						System.out.println("你按下了上箭头");
						}
						if(keycode==KeyEvent.VK_W) {
							System.out.println("你按下了W");
						}
					 }
		});
	}
}

窗口

package Demo03;

import java.awt.Color;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;

public class TestWindow {
	public static void main(String[] args) {
		new WindowFrame();
	}
}
class WindowFrame extends JFrame{
	public WindowFrame() {
		this.setBackground(Color.cyan);
		this.setBounds(166, 200, 300, 400);
		this.setVisible(true);
		//this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		//this.addWindowListener(new MyWindowListener());//匿名类
		
		this.addWindowListener(
				new WindowAdapter() {
					//匿名内部类
					@Override
					public void windowClosing(WindowEvent e) {
						super.windowClosing(e);
						setVisible(false);//设置不可见
						System.out.println("我要关闭");
						//System.exit(0);
					}
					@Override
					public void windowActivated(WindowEvent e) {
						super.windowActivated(e);
					System.out.println("windowActivated");
				}
				@Override
					public void windowClosed(WindowEvent e) {
						super.windowClosed(e);
					System.out.println("windowClosed");
					}
					@Override
					public void windowOpened(WindowEvent e) {
						super.windowOpened(e);
					System.out.println("windowOpened");
					}
					
				}
		);
	}
}
/*
	class MyWindowListener extends WindowAdapter{
		//  按住alt+/
		@Override
		public void windowClosing(WindowEvent e) {
			// TODO 自动生成的方法存根
			super.windowClosing(e);
			setVisible(false);//设置不可见
			System.out.println("我要关闭");
			System.exit(0);
}
	}
	*/

鼠标监听

package com.hg.day28.demo03;

import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.util.Iterator;

//鼠标监听
public class TestMouseListener {
    public static void main(String[] args) {
        new MyFrame("我的画图");
    }
}
class MyFrame extends JFrame{
    ArrayList points;
    public MyFrame(String title){
        super(title);
        this.setBounds(200,200,400,400);
        this.setVisible(true);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        points= new ArrayList<>();
        this.addMouseListener(new MyMouseListener());
    }

    @Override
    public void paint(Graphics g) {
        Iterator iterator = points.iterator();
        while (iterator.hasNext()){
            Point point = (Point) iterator.next();
            g.setColor(Color.cyan);
            g.fillOval(point.x,point.y,10,10);
        }
    }

    public void addPaint(Point point){
        points.add(point);
    }
    private class MyMouseListener extends MouseAdapter{
        @Override
        public void mousePressed(MouseEvent e) {
            MyFrame myFrame = (MyFrame) e.getSource();
            System.out.println("x左标:"+e.getX()+"y左标"+e.getY());
            myFrame.addPaint(new Point(e.getX(),e.getY()));
            myFrame.repaint();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值