GUI基础分享(部分组件)

博客围绕Java图形用户界面(GUI)开发展开,介绍了布局管理器,如流式、边界、网格布局;阐述事件处理监听器,包括按钮触发事件等,还实现简易计算器;此外,涉及JFrame、JPanel等组件,以及画笔、文本框、滚动条等功能。
摘要由CSDN通过智能技术生成

图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
先上一个简单的窗口(Frame)

import java.awt.Color;
import java.awt.Frame;

public class TestFrame {

	public static void main(String[] args) {
		//Frame
		Frame frame = new Frame("我的第一个java图像界面窗口");
		//需要设置可见性  width   height
		frame.setVisible(true);
		//设置窗口大小
		frame.setSize(400, 400);
		//设置背景颜色 Color
		frame.setBackground(new Color(85,150,68));
		//弹出的初始位置
		frame.setLocation(200, 200);
		//设置大小固定
		frame.setResizable(false);
	}
}

在这里插入图片描述

布局管理器

FlowLayout(流式布局管理器)
Panel(面板)默认的布局管理器。

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;

public class TestFlowLayout {
	public static void main(String[] args) {
		Frame frame = new Frame();
		//按钮——组件
		Button button = new Button("button1");
		Button button2 = new Button("button2");
		Button button3 = new Button("button3");
		
		//设置为流使式布局
		frame.setLayout(new FlowLayout(FlowLayout.LEFT));
		
		frame.setSize(200, 200);
		//将按钮添加上去
		frame.add(button);
		frame.add(button2);
		frame.add(button3);
		frame.setVisible(true);	
	}
}

在这里插入图片描述
BorderLayout(边界布局管理器)
东,南,西,北,中
Frame默认的布局管理器。

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;

public class TestBorderLayout {
	public static void main(String[] args) {
		Frame frame = new Frame();
		
		Button east = new Button("East");
		Button west = new Button("West");
		Button south = new Button("South");
		Button north = new Button("North");
		Button center = new Button("Center");
		
		frame.add(east, BorderLayout.EAST);
		frame.add(west, BorderLayout.WEST);
		frame.add(south, BorderLayout.SOUTH);
		frame.add(north, BorderLayout.NORTH);
		frame.add(center, BorderLayout.CENTER);
		
		frame.setSize(200, 200);
		frame.setVisible(true);
		
	}
}

在这里插入图片描述
GridLayout(网格布局管理器)

import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;

public class TestGridLayout {
	public static void main(String[] args) {
		Frame frame = new Frame("TestGridLayout");
		
		Button btn1 = new Button("btn1");
		Button btn2 = new Button("btn2");
		Button btn3 = new Button("btn3");
		Button btn4 = new Button("btn4");
		Button btn5 = new Button("btn5");
		Button btn6 = new Button("btn6");
		
		frame.setLayout(new GridLayout(3,2));
		frame.add(btn1);
		frame.add(btn2);
		frame.add(btn3);
		frame.add(btn4);
		frame.add(btn5);
		frame.add(btn6);
		frame.pack();
		frame.setVisible(true);
	}
}

在这里插入图片描述
Panel(面板)

import java.awt.Color;
import java.awt.Frame;
import java.awt.Panel;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

//可以看成是一个空间,但是不能单独存在
public class TestPanel {
	public static void main(String[] args) {
		Frame frame = new Frame();
		//布局的概念
		Panel panel = new Panel();
		
		//设置布局
		frame.setLayout(null);
		
		//坐标
		frame.setBounds(300, 300, 500, 500);
		frame.setBackground(new Color(40,161,35));
		
		//panel设置坐标,相对于frame
		panel.setBounds(50, 50, 400, 400);
		panel.setBackground(new Color(193,15,60));
		
		//frame.add(panel)
		frame.add(panel);
		
		frame.setVisible(true);
		
		//监听事件,监听窗口关闭事件 System.exit(0)
		//适配器模式:
		frame.addWindowListener(new WindowAdapter() {
			//窗口点击关闭的时候需要做的事情
			@Override
			public void windowClosing(WindowEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
		});	
}
}

在这里插入图片描述

事件处理监听器

按钮触发事件

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class TestActionEvent {

	public static void main(String[] args) {
		//按下按钮,触发一些事件
		Frame frame = new Frame();
		Button button = new Button();
		frame.add(button,BorderLayout.CENTER);
		frame.pack();
		windowClose(frame);
		frame.setVisible(true);
		//因为addActionListener()需要一个ActionListener(接口),所以我们需要构造一个ActionListener
		MyActionListener myActionListener = new MyActionListener();
		button.addActionListener(myActionListener);
		
	}
	
	//关闭窗体事件
	private static void windowClose(Frame frame) {
		frame.addWindowListener(new WindowAdapter() {
			@Override
			public void windowClosing(WindowEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
			}
		});
	}
}
//事件监听
class MyActionListener implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent e) {
		System.out.println("5464");
		
	}
	
}

两个按钮实现同一个监听

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

public class TestActionTwo {

	public static void main(String[] args) {
		//两个按钮实现同一个监听
		//开始    停止
	    Frame frame = new Frame("开始-停止");
	    Button button1 = new Button("start");
	    Button button2 = new Button("stop");
	    //可以显示定义触发返回的命令,否则,返回默认的值
	    button2.setActionCommand("button2-stop");
	    MyMonitor myMonitor = new MyMonitor();
	    button1.addActionListener(myMonitor);
	    button2.addActionListener(myMonitor);
	    
	    frame.add(button1,BorderLayout.NORTH);
	    frame.add(button2,BorderLayout.SOUTH);
	    
	    frame.pack();
	    frame.setVisible(true);
	}
}

class MyMonitor implements ActionListener{
	
	@Override
	public void actionPerformed(ActionEvent e) {
		//获取按钮上的信息
		System.out.println("按钮被点击了"+e.getActionCommand());
		
	}
	
	
}

实现一个简易的计算器

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TestCalc {

	public static void main(String[] args) {
		new Calculator();
	}
}
//计数器类
class Calculator extends Frame{
	public Calculator() {
		//3个文本框
		TextField num1 = new TextField(10);
		TextField num2 = new TextField(10);
		TextField num3 = new TextField(20);
		//一个按钮
		Button button = new Button("=");
		button.addActionListener(new MyCalculatorListener(num1, num2, num3));
		//1个标签
		Label label = new Label("+");
		//布局
		setLayout(new FlowLayout());
		
		add(num1);
		add(label);
		add(num2);
		add(button);
		add(num3);
		
		pack();
		setVisible(true);
	}
}

//监听器类
class MyCalculatorListener implements ActionListener{

	//获取三个变量
	private TextField num1,num2,num3;
	
	 public MyCalculatorListener(TextField num1,TextField num2,TextField num3) {
		this.num1=num1;
		this.num2=num2;
		this.num3=num3;	
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		//1.获得加数和被加数
		int n1 = Integer.parseInt(num1.getText());
		int n2 = Integer.parseInt(num2.getText());
		//2.将这个值+法运算后,放到第三个框
		num3.setText(""+(n1+n2));
		//清除两个框
		num1.setText("");
		num2.setText("");
	}
	
}

在这里插入图片描述
画笔

import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;
import java.util.Iterator;

public class TestMouseListener {

	public static void main(String[] args) {
		new MyFrame("画画");
	}
}

class MyFrame extends Frame{
	//画画需要画笔,需要监听鼠标当前的位置,需要集合来存储这个点
	ArrayList points;
	public MyFrame(String title) {
		super(title);
		setBounds(200, 200, 400, 300);
		
		//存鼠标点击的点
		points=new ArrayList<>();
		
		setVisible(true);
		//鼠标监听器,正对这个窗口
		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.blue);
			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) {
			// TODO Auto-generated method stub
			MyFrame frame=(MyFrame) e.getSource();
			//这个点击的时候,就会在界面产生一个点!画
			//这个点就是鼠标的点
			frame.addPaint(new Point(e.getX(),e.getY()));
			
			//每次点击鼠标都需要重新画一遍
			frame.repaint();
		}
	}
}

在这里插入图片描述
画图(代码下方)

import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;

public class TestPaint {

	public static void main(String[] args) {
		new MyPaint().loadFrame();
	}
}

class MyPaint extends Frame{
	public void loadFrame() {
		setBounds(200, 200, 600, 500);
		setVisible(true);
	}
	
	//画笔
	public void paint(Graphics g) {
		//画笔需要有颜色,可以画画
		//g.setColor(Color.red);
		g.drawOval(100, 100, 100, 100);
		g.fillOval(100, 100, 100, 100);//实心圆
		
		//g.setColor(Color.GREEN);
		g.fillRect(150, 200, 200, 200);
		
		//画笔用完,将它还原到最初的颜色
	}
}

在这里插入图片描述
注意:paint方法是applet继承自awt中的Component的方法,会在对象加载时自动调用,用来绘制该组件内部的所有内容。如果想重新调用该方法中执行的操作可以使用repaint()方法。

文本框

import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class TestText01 {

	public static void main(String[] args) {
		//启动!
		MyFrame1 myFrame = new MyFrame1();
	}
}
class MyFrame1 extends Frame{
	public MyFrame1() {
		TextField textField = new TextField();
		add(textField);
		
		//监听这个文本框输入的文字
		MyActionListener2 myActionListener2 = new MyActionListener2();
		//按下回车就会触发事件
		textField.addActionListener(myActionListener2);
		//设置替换编码
		textField.setEchoChar('*');
		setVisible(true);
		pack();
	}
}

class MyActionListener2 implements ActionListener{

	@Override
	public void actionPerformed(ActionEvent e) {
		TextField field=(TextField)e.getSource();//获得一些资源,返回的一个对象
		System.out.println(field.getText());//获得输入框的文本
		field.setText("");
	}
	
}

在这里插入图片描述

JFrame

JFrame

import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.WindowConstants;

public class JFrameDemo {
	//init(); 初始化
	public void init() {
		JFrame jf = new JFrame("这是一个JFrame窗口");
		jf.setVisible(true);
		jf.setBounds(100, 100, 200, 200);
		jf.setBackground(Color.cyan);
		//设置文字Label
		JLabel label = new JLabel("你好");
		jf.add(label);
		
		//关闭事件
		jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
		//建立一个窗口
		new JFrameDemo().init();
	}
}

在这里插入图片描述
JPanel

import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;

public class JPanelDemo extends JFrame{
	public JPanelDemo() {
		Container container = this.getContentPane();
		container.setLayout(new GridLayout(2,1,10,10));//后面的参数是间距
		
		JPanel jPanel1 = new JPanel(new GridLayout(1,3));
		jPanel1.add(new JButton("1"));
		jPanel1.add(new JButton("2"));
		jPanel1.add(new JButton("3"));
		
		container.add(jPanel1);
		setSize(500, 500);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	
	public static void main(String[] args) {
		new JPanelDemo();
	}
}

在这里插入图片描述
滚动条(JScroll)

import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;

public class JScrollDemo extends JFrame{
	public JScrollDemo() {
		Container container = getContentPane();
		//文本域
		JTextArea jTextArea = new JTextArea(20,50);
		jTextArea.setText("你好");
		//Scroll面板
		JScrollPane jScrollPane = new JScrollPane(jTextArea);
		container.add(jScrollPane);
		
		setBounds(100, 100, 300, 350);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
		new JScrollDemo();
	}
}

在这里插入图片描述

弹窗

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dialog;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

//主窗口
public class DialogDemo extends JFrame{
	public DialogDemo() {
		setVisible(true);
		setSize(700, 500);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		
		//JFrame放东西,容器
		Container container = this.getContentPane();
		//绝对布局
		container.setLayout(null);
		
		//按钮
		JButton button = new JButton("点击弹出一个对话框");//创建
		button.setBounds(30, 30, 200, 50);
		//点击这个按钮的时候,弹出一个弹窗
		button.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				//弹窗
				new MyDialogDemo();
				
			}
		});
		container.add(button);
	}
	public static void main(String[] args) {
		new DialogDemo();
	}
}

//弹窗的窗口
class MyDialogDemo extends JDialog{
	public MyDialogDemo() {
		setVisible(true);
		setBounds(100, 100, 500, 500);
		
		Container container = this.getContentPane();
		container.setLayout(null);
		
		container.add(new Label("红红火火恍恍惚惚"));
	}
}

在这里插入图片描述
图标

import java.awt.Component;
import java.awt.Container;
import java.awt.Frame;
import java.awt.Graphics;

import javax.swing.Icon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

//图标,需要实现类,Frame继承
public class IconDemo extends JFrame implements Icon{
	private int width;
	private int height;
	
	public IconDemo() {//无参构造
	}

	public IconDemo(int width, int height) {
		this.width = width;
		this.height = height;
	}

	public void init() {
		IconDemo iconDemo = new IconDemo(15,15);
		//图标可以放在标签上,也可以放在按钮上!
		JLabel label = new JLabel("icontest",iconDemo,SwingConstants.CENTER);
		
		Container container=getContentPane();
		container.add(label);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
		new IconDemo().init();
	}

	@Override
	public void paintIcon(Component c, Graphics g, int x, int y) {
		g.fillOval(x, y, width, height);
		
	}

	@Override
	public int getIconWidth() {
		// TODO Auto-generated method stub
		return this.width;
	}

	@Override
	public int getIconHeight() {
		// TODO Auto-generated method stub
		return this.height;
	}
}

JLabel

import java.awt.Container;
import java.net.URL;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;

public class ImageIconDemo extends JFrame{
	public ImageIconDemo() {
		//获取图片的地址
		JLabel label = new JLabel("ImageIcon");
		URL url = ImageIconDemo.class.getResource("浣熊.jpg");
		
		ImageIcon imageIcon = new ImageIcon(url);
		label.setIcon(imageIcon);
		label.setHorizontalAlignment(SwingConstants.CENTER);
		Container container = getContentPane();
		container.add(label);
		setVisible(true);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
		setBounds(100, 100, 200, 200);
	}
	
	public static void main(String[] args) {
		new ImageIconDemo();
	}
}

把图片放在按钮上

import java.awt.Container;
import java.net.URL;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;

public class JButtonDemo01 extends JFrame{
	
	public JButtonDemo01() {
		Container container = getContentPane();
		//将一个图片变为图标
		URL resource = JButtonDemo01.class.getResource("浣熊.jpg");
		Icon icon=new ImageIcon(resource);
		
		//把这个图标放在按钮上
		JButton button = new JButton();
		button.setIcon(icon);
		button.setToolTipText("图片按钮");
		
		//add
		container.add(button);
		setVisible(true);
		setSize(500, 300);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
		new JButtonDemo01();
	}
}

单选框

import java.awt.BorderLayout;
import java.awt.Container;
import java.net.URL;
import javax.swing.ButtonGroup;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
import javax.swing.WindowConstants;

public class JButtonDemo2 extends JFrame{
	
	public JButtonDemo2() {
		Container container = getContentPane();
		//将一个图片变为图标
		URL resource = JButtonDemo2.class.getResource("浣熊.jpg");
		Icon icon=new ImageIcon(resource);
		
		//单选框
		JRadioButton radioButton1 = new JRadioButton("JRadioButton01");
		JRadioButton radioButton2 = new JRadioButton("JRadioButton02");
		JRadioButton radioButton3 = new JRadioButton("JRadioButton03");
		
		//由于单选框只能选择一个,分组,一个组里只能选一个
		ButtonGroup group = new ButtonGroup();
		group.add(radioButton1);
		group.add(radioButton2);
		group.add(radioButton3);
		
		container.add(radioButton1,BorderLayout.CENTER);
		container.add(radioButton2,BorderLayout.NORTH);
		container.add(radioButton3,BorderLayout.SOUTH);
		
		setVisible(true);
		setSize(500, 300);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
		new JButtonDemo2();
	}
}

在这里插入图片描述
多选框

import java.awt.BorderLayout;
import java.awt.Container;
import java.net.URL;
import javax.swing.ButtonGroup;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
import javax.swing.WindowConstants;

public class JButtonDemo3 extends JFrame{
	
	public JButtonDemo3() {
		Container container = getContentPane();
		//将一个图片变为图标
		URL resource = JButtonDemo3.class.getResource("浣熊.jpg");
		Icon icon=new ImageIcon(resource);
		
		//多选框
		JCheckBox jCheckBox1 = new JCheckBox("11111111111");
		JCheckBox jCheckBox2 = new JCheckBox("22222222222");
		container.add(jCheckBox1,BorderLayout.NORTH);
		container.add(jCheckBox2,BorderLayout.SOUTH);
		
		
		setVisible(true);
		setSize(500, 300);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
		new JButtonDemo3();
	}
}

下拉条

import java.awt.Container;

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

public class TestComboboxDemo01 extends JFrame{
	public TestComboboxDemo01() {
		Container container = getContentPane();
		
		JComboBox status = new JComboBox();
		
		status.addItem("正在热映");
		status.addItem("已下架");
		status.addItem("即将上映");
		
		container.add(status);
		setVisible(true);
		setSize(500, 350);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	
	public static void main(String[] args) {
		new TestComboboxDemo01();
	}
}

JTextField

import java.awt.BorderLayout;
import java.awt.Container;
import java.util.Vector;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

public class TestComboboxDemo3 extends JFrame{
	public TestComboboxDemo3() {
		Container container = getContentPane();
		
		JTextField jTextField = new JTextField("hello");
		JTextField jTextField2 = new JTextField("hello",20);
		
		container.add(jTextField,BorderLayout.NORTH);
		container.add(jTextField2,BorderLayout.SOUTH);
		
		setVisible(true);
		setSize(500, 350);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	
	public static void main(String[] args) {
		new TestComboboxDemo3();
	}
}

JPasswordField

import java.awt.BorderLayout;
import java.awt.Container;
import java.util.Vector;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.WindowConstants;

public class TestComboboxDemo4 extends JFrame{
	public TestComboboxDemo4() {
		Container container = getContentPane();
		
		//面板
		
		JPasswordField jPasswordField = new JPasswordField();
		jPasswordField.setEchoChar('*');//输入框显示为'*',后台获取的是实际输入的东西
		container.add(jPasswordField);
		
		setVisible(true);
		setSize(500, 350);
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
	}
	
	public static void main(String[] args) {
		new TestComboboxDemo4();
	}
}

在这里插入图片描述
获取键盘按键

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

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

class KeyFrame extends Frame{
	public KeyFrame() {
		setBounds(1, 2, 300, 400);
		setVisible(true);
		
		this.addKeyListener(new KeyAdapter() {
			//键盘按下
			@Override
			public void keyPressed(KeyEvent e) {
				// 键盘按下的键是哪一个
				int keyCode = e.getKeyCode();
				System.out.println("keyCode");
				if(keyCode==KeyEvent.VK_UP) {
					System.out.println("你按下了↑键");
				}
				//根据按下不同操作,产生不同的结果   
			}
		});
	}
}

窗口监听器

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

public class TestWindow {

	public static void main(String[] args) {
		new WindowFrame();
	}
}

class WindowFrame extends Frame{
	public WindowFrame() {
		setVisible(true);
		setBackground(Color.blue);
		setBounds(100, 100, 200, 200);
		//addWindowListener(new MyWindowListener());
		
		this.addWindowListener(
				//匿名内部类
				new WindowAdapter() {
					public void windowOpened(WindowEvent e) {
						System.out.println("windowOpened");
					}
					public void windowClosing(WindowEvent e) {
						System.out.println("windowClosed");
						System.exit(0);
					}
					public void windowClosed(WindowEvent e) {
						System.out.println("windowclosing");
					}
					public void windowActivated(WindowEvent e) {
						System.out.println("windowAction");
					}
				}
				);
		
	}
}

浣熊.jpg
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值