JAVA GUI (总结)

JAVA GUI

1.编写一个Java程序,该程序运行的运行结果如下所示。
在这里插入图片描述
代码:

import java.awt.*;
import java.awt.event.*;

public class TestFlowLayout {
	public static void main(String args[]) {
		Frame f = new Frame("Flow Layout");
		f.setLocation(500, 500);
		Button button1 = new Button("确定");
		Button button2 = new Button("打开");
		Button button3 = new Button("关闭");
		Button button4 = new Button("取消");
		f.setLayout(new FlowLayout());
		f.add(button1);
		f.add(button2);
		f.add(button3);
		f.add(button4);
		f.setSize(300, 200);
		f.setVisible(true);
		f.addWindowListener(new MyWindowListener());
	}
}
class MyWindowListener extends WindowAdapter{
	public void windowClosing(WindowEvent e){
		Window window = (Window) e.getComponent();
		window.dispose();
	}
}

结果:
在这里插入图片描述
2.编写一个Java程序,该程序运行的运行结果如下所示。

在这里插入图片描述
代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;
public class BorderLayoutWindow {    
      public static void main(String args[]) {
    	JFrame frame=new JFrame();
    	frame.setSize(300, 200);
    	frame.setLocation(300, 200);
    	frame.setLayout(new BorderLayout());   
    	frame.add(new Button("BN"), "North");       
    	frame.add( new Button("BS"),"South");
    	frame.add( new Button("BE"),"East");
    	frame.add( new Button("BW"),"West");
    	frame.add( new Button("BC"),"Center");
    	frame.setTitle("BorderWindow");
        frame.setVisible(true);
		frame.addWindowListener(new MyWindowListener());
	}
}
class MyWindowListener extends WindowAdapter{
	public void windowClosing(WindowEvent e){
		Window window = (Window) e.getComponent();
		window.dispose();
	}
}

结果:
在这里插入图片描述
3.编写一个Java Application程序,该程序运行的运行结果如下所示。

在这里插入图片描述
代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;

public class GridLayoutWindow extends JFrame {
	public GridLayoutWindow() {
		setLayout(new GridLayout(3, 2));
		add(new Button("b1"));
		add(new Button("b2"));
		add(new Button("b3"));
		add(new Button("b4"));
		add(new Button("b5"));
		add(new Button("b6"));
	}

	public static void main(String args[]) {
		GridLayoutWindow window = new GridLayoutWindow();
		window.setSize(300, 150);
		window.setLocation(200, 200);
		window.setTitle("GridLayout Example");
		window.setVisible(true);
		window.addWindowListener(new MyWindowListener());
	}
}

class MyWindowListener extends WindowAdapter {
	public void windowClosing(WindowEvent e) {
		Window window = (Window) e.getComponent();
		window.dispose();
	}
}

结果:
在这里插入图片描述

4、编写一个Java GUI应用程序,窗口标题为“GridLayout”,窗口布局如下图A所示,在图A窗口中单击任意一个Button,网格的划分方式会变化为图B;在图B窗口中单击任意一个Button,网格的划分方式会变化为图A。
A图在这里插入图片描述 B图在这里插入图片描述
代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;

public class GuiTest implements ActionListener {
	private JFrame frame;
	private Button[] buttons;
	private boolean flag;

	public GuiTest() {
		flag = true;
		frame = new JFrame();
		frame.setTitle("GridLayout");
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLayout(new GridLayout(2, 3, 10, 10));
		frame.setSize(300, 300);
		frame.setLocation(200, 300);
		frame.setVisible(true);
		buttons = new Button[6];
		String ch[] = { "one", "two", "three", "four", "five", "six" };
		for (int i = 0; i < 6; i++) {
			buttons[i] = new Button(ch[i]);
			buttons[i].addActionListener(this);
			frame.add(buttons[i]);
		}
		frame.addWindowListener(new MyWindowListener());
	}

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

	public void actionPerformed(ActionEvent e) {
		if (flag) {
			frame.repaint();
			frame.setLayout(new GridLayout(3, 2));
			for (int i = 0; i < 6; i++) {
				frame.add(buttons[i]);
			}
			frame.setVisible(true);
			flag = false;
		} else {
			frame.repaint();
			frame.setLayout(new GridLayout(2, 3, 10, 10));
			for (int i = 0; i < 6; i++) {
				frame.add(buttons[i]);
			}
			frame.setVisible(true);
			flag = true;
		}
	}
}

class MyWindowListener extends WindowAdapter {
	public void windowClosing(WindowEvent e) {
		Window window = (Window) e.getComponent();
		window.dispose();
	}
}

结果:
点击前:
点击前
点击后:

在这里插入图片描述
5.编写一个Java 程序,该程序运行的运行结果如下所示。
在这里插入图片描述
代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;

public class MenuTest{
	public static void main(String args[]){
		Frame fr=new Frame("Menu");
		fr.setSize(300, 300);
		fr.setLocation(200, 300);
		MenuBar mb=new MenuBar();
		fr.setMenuBar(mb);
		Menu m1=new Menu("File");
		Menu m2=new Menu("Edit");
		Menu m3=new Menu("Help");
		mb.add(m1);
		mb.add(m2);
		mb.setHelpMenu(m3);
		MenuItem m11=new MenuItem("New");
		MenuItem m12=new MenuItem("Save");
		MenuItem m13=new MenuItem("Load");
		MenuItem m14=new MenuItem("Quit");
		m1.add(m11);
		m1.add(m12);
		m1.add(m13);
		m1.addSeparator();
		m1.add(m14);
		fr.pack();
		fr.setVisible(true);
		fr.addWindowListener(new MyWindowListener());
	}
}

class MyWindowListener extends WindowAdapter {
	public void windowClosing(WindowEvent e) {
		Window window = (Window) e.getComponent();
		window.dispose();
	}
}

结果:
在这里插入图片描述

6.编写一个Java程序,该程序运行的运行结果如下所示。
在这里插入图片描述
代码:

import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;

public class MenuTest{
	public static void main(String args[]){
		Frame fr=new Frame("Menu");
		fr.setSize(300, 300);
		fr.setLocation(200, 300);
		MenuBar mb=new MenuBar();
		fr.setMenuBar(mb);
		Menu m1=new Menu("File");
		Menu m2=new Menu("Format");
		Menu m3=new Menu("Help");
		Menu m4=new Menu("进制");
		mb.add(m1);
		mb.add(m2);
		mb.setHelpMenu(m3);
		MenuItem m21=new MenuItem("中文");
		MenuItem m41=new MenuItem("二进制");
		MenuItem m42=new MenuItem("八进制");
		MenuItem m43=new MenuItem("十进制");
		m2.add(m21);
		m2.add(m4);
		m4.add(m41);
		m4.add(m42);
		m4.add(m43);
		fr.pack();
		fr.setVisible(true);
		fr.addWindowListener(new MyWindowListener());
	}
}

class MyWindowListener extends WindowAdapter {
	public void windowClosing(WindowEvent e) {
		Window window = (Window) e.getComponent();
		window.dispose();
	}
}

结果:
在这里插入图片描述
7、完成下图所示用户登录界面的设计,如果输入用户名:admin,密码:123456,则弹出登录成功对话框,否则弹出登录失败对话框,当单击清空按钮时,将文本框和密码框中的内容清空。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class Login extends JFrame {
	private JPanel p;
	private JLabel lblName, lblPwd;
	private JTextField txtName;
	private JPasswordField txtPwd;
	private JButton btnOk, btnCancle;

	public Login() {
		super("登录");
		p = new JPanel();
		p.setLayout(null);
		lblName = new JLabel("用户名");
		lblPwd = new JLabel("密    码");
		txtName = new JTextField(20);
		txtPwd = new JPasswordField(20);
		txtPwd.setEchoChar('*');
		btnOk = new JButton("确定");
		btnCancle = new JButton("清空");
		lblName.setBounds(30, 30, 60, 25);
		txtName.setBounds(95, 30, 120, 25);
		lblPwd.setBounds(30, 60, 60, 25);
		txtPwd.setBounds(95, 60, 120, 25);
		btnOk.setBounds(60, 90, 60, 25);
		btnCancle.setBounds(125, 90, 60, 25);
		p.add(lblName);
		p.add(txtName);
		p.add(lblPwd);
		p.add(txtPwd);
		p.add(btnOk);
		p.add(btnCancle);
		this.add(p);
		this.setSize(250, 170);
		this.setLocation(300, 300);
		// 设置窗体不可改变大小
		this.setResizable(false);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		// 注册确定按钮的事件处理
		btnOk.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// 获取用户输入的用户名
				String strName = txtName.getText();
				// 获取用户输入的密码
				String strPwd = new String(txtPwd.getPassword());
				// 在消息对话框中显示用户输入的信息
				if (strName.equals("admin") && strPwd.equals("123456"))
					JOptionPane.showMessageDialog(null, "恭喜您,登录成功!", "提示窗口", JOptionPane.INFORMATION_MESSAGE);
				else
					JOptionPane.showMessageDialog(null, "登录失败!", "提示窗口", JOptionPane.INFORMATION_MESSAGE);
			}
		});
		// 注册取消按钮的事件处理
		btnCancle.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				// 清空文本框中的文本
				txtName.setText("");
				txtPwd.setText("");
			}
		});
	}

	public static void main(String[] args) {
		Login f = new Login();
		f.setVisible(true);
	}
}

结果:
在这里插入图片描述
在这里插入图片描述
8、设计一个简单计算器,如下图所示。在“操作数”标签右侧的两个文本框输入操作数,当单击操作符+,-,×,÷按钮时,对两个操作数进行运算并将结果填入到“结果”标签右侧的文本框中。
在这里插入图片描述
代码:

import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class Calc implements ActionListener {
	private Frame Fm = new JFrame();
	private JButton quit = new JButton("退出");
	private JButton Add = new JButton("+");
	private JButton Sub = new JButton("-");
	private JButton Mul = new JButton("×");
	private JButton Div = new JButton("÷");
	private Label Addend = new Label("操作数:");
	private Label Augend = new Label("操作数:");
	private Label Result = new Label("结果");
	private TextField fieldAdd = new TextField();
	private TextField fieldAug = new TextField();
	private TextField areaResult = new TextField();
	private Font Ft = new Font("宋体", Font.BOLD, 18);

	public Calc() {
		Fm.setTitle("简单计算器");
		Fm.setLayout(null);
		Fm.setBounds(200, 100, 400, 300);
		Addend.setBounds(20, 70, 60, 30);
		Fm.add(Addend);// 标签--操作数1
		Addend.setFont(Ft);// 字体类型
		fieldAdd.setBounds(100, 70, 140, 30);
		Fm.add(fieldAdd);// 输入区--操作数1
		fieldAdd.setFont(Ft);// 字体类型
		Augend.setBounds(20, 120, 60, 30);
		Fm.add(Augend);// 标签--操作数2
		Augend.setFont(Ft);
		fieldAug.setBounds(100, 120, 140, 30);
		Fm.add(fieldAug);// 输入区--操作数2
		fieldAug.setFont(Ft);
		Result.setBounds(20, 170, 60, 30);
		Fm.add(Result);// 标签--结果
		Result.setFont(Ft);
		areaResult.setBounds(100, 170, 140, 30);
		Fm.add(areaResult);
		areaResult.setFont(Ft);
		Add.setBounds(260, 50, 100, 30);
		Fm.add(Add);
		Add.addActionListener(this);
		Sub.setBounds(260, 90, 100, 30);
		Fm.add(Sub);
		Sub.addActionListener(this);
		Mul.setBounds(260, 130, 100, 30);
		Fm.add(Mul);
		Mul.addActionListener(this);
		Div.setBounds(260, 170, 100, 30);
		Fm.add(Div);
		Div.addActionListener(this);
//退出  
		quit.setBounds(260, 210, 100, 30);
		Fm.add(quit);
		quit.addActionListener(this);
		Fm.setVisible(true);
	}

	public void actionPerformed(ActionEvent e) {
		double a, b;
		a = Double.parseDouble(fieldAdd.getText());
		b = Double.parseDouble(fieldAug.getText());
		try {
			if (e.getSource() == quit)
				System.exit(0);
			else if (e.getSource() == Add)
				areaResult.setText(String.valueOf(a + b));
			else if (e.getSource() == Sub)
				areaResult.setText(String.valueOf(a - b));
			else if (e.getSource() == Mul)
				areaResult.setText(String.valueOf(a * b));
			else if (e.getSource() == Div)
				areaResult.setText(String.valueOf(a / b));
		} catch (Exception Ex) {
			areaResult.setText("出错了:" + Ex);
		}
	}

	public static void main(String args[]) {
		Calc call = new Calc();
	}
}

结果:
在这里插入图片描述

  • 67
    点赞
  • 476
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值