实验五图形用户界面编程

目录

一、目的与任务

二、内容、要求与安排方式

三、实验设备

四、实验步骤


一、目的与任务

掌握常用事件及其处理模型;掌握常用GUI控制组件的使用及其事件的处理;掌握菜单的使用以及对话框的使用。

二、内容、要求与安排方式

1、实验内容与要求:

(1)编程包含一个标签和一个按钮,单击按钮时,标签的内容在"你好"和"再见"之间切换。

(2)编程包含一个文本框和一个文本区域,文本框内容改变时,将文本框中的内容显示在文本区域中;在文本框中按回车键时,清空文本区域的内容。

(3) 在窗体中添加标签、按钮并使用网格布局管理器排列组件在容器中的位置。

(4)

(5)在窗口中添加组件,运行效果图如下图所示。

2、要求:能够上机编辑、调试java程序;

3、实验安排方式:每组1人,独立完成上机实验;

三、实验设备

    1、所用设备:装有java开发环境的计算机

    2、消耗性器材:无

四、实验步骤

(1)

package 实验五;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Hello51 extends JFrame{
//		private JTextField t1;
		JLabel jl = new JLabel();
		public Hello51() {
			this.setTitle("切换");
			Container container = this.getContentPane();
			container.setLayout(new BorderLayout());
			JPanel panel = new JPanel();
			JPanel panelTop = new JPanel();
			JPanel panel1 = new JPanel();
//			panel.setBackground(Color.BLUE);
//			t1 = new JTextField(10);
			this.setLocationRelativeTo(null);
//			panelTop.add(t1);
			panel1.add(jl);
			JButton bt = new JButton("切换");
			bt.addActionListener(new action());
			panel.add(bt);
			container.add(panelTop, BorderLayout.CENTER);
			container.add(panel1, BorderLayout.NORTH);
			container.add(panel, BorderLayout.SOUTH);//SOUTH按钮位置
			this.setVisible(true);
			this.setSize(300,300);
		}
		int flag=0;
		class action implements ActionListener{
			public void actionPerformed(ActionEvent e) {
				
				if(flag==0) {
//					t1.setText(String.valueOf("再见"));
					jl.setText("再见");
					flag = 1;
				}
				else if(flag==1) {
//					t1.setText(String.valueOf("你好"));
					jl.setText("你好");
					flag = 0;
				}

			}
		}
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		new Hello51();
	}

}

(2)

package 实验五;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.TextEvent;
import java.awt.event.TextListener;

import javax.swing.*;
public class Wen52 extends JFrame implements TextListener, ActionListener,KeyListener{
	private static TextField t1;
	private TextArea jr;
	public Wen52(){
		
		JFrame jf = new JFrame();
		jf.setSize(400, 200);
		jf.setAlwaysOnTop(true);
		jf.setTitle("文本");
		
		JPanel jp = new JPanel();
		JLabel w1= new JLabel("文本框");
		t1 = new TextField(10);
	
		jp.add(w1); 
		jp.add(t1);
		
		jr = new TextArea(6,30);
		jr.setEditable(false);
		
		jp.add(jr);
		
		jf.add(jp,BorderLayout.NORTH);
		
		jf.setLocationRelativeTo(null);
		jf.setVisible(true);
		jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		t1.addKeyListener(this);
//		t1.addActionListener(this);
		t1.addTextListener(this);
		
	}
	
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		new Wen52();
		
	}
	public void textValueChanged(TextEvent e) {
		// TODO 自动生成的方法存根
		jr.setText(t1.getText());
	}

	public void actionPerformed(ActionEvent e) {
		// TODO 自动生成的方法存根
		if(e.hashCode()==23675675) {
			jr.setText("");
		}
	}

	public void keyTyped(KeyEvent e) {
		// TODO 自动生成的方法存根
		
	}

	public void keyPressed(KeyEvent e) {
		// TODO 自动生成的方法存根
		if(e.getKeyCode()==KeyEvent.VK_ENTER) {
			jr.setText("");
		}
	}

	public void keyReleased(KeyEvent e) {
		// TODO 自动生成的方法存根
		
	}

	

}

 

(3)

package 实验五;

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

public class Biao53 extends JFrame{

	public Biao53() {
		this.setTitle("网格布局管理器");
		Container container = getContentPane();
		this.setLayout(new GridLayout(5,5,5,5));
		for(int i=0;i<12;i++) {
			container.add(new JLabel("标签" + i));
			container.add(new JButton("按钮" + i));
//			this.add(new JLabel("标签" + i));
//			this.add(new JButton("按钮" + i));
		}
		
		this.pack();//自适应

		this.setLocationRelativeTo(null);
		this.setAlwaysOnTop(true);
		this.setVisible(true);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		
		
	}
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		new Biao53();
	}

}

(4)

package 实验五;

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

public class Windows54 extends JFrame{
	private JTextField t1;
	private JTextArea jr;
	private JRadioButton ju1;
	private JRadioButton ju2;
	private JRadioButton ju3;
	private JRadioButton ju4;
	private JCheckBox jc1;
	private JCheckBox jc2;
	private JCheckBox jc3;
	private JCheckBox jc4;
	
	Windows54(){
		this.setTitle("进制转换");
//		取消外框
//		this.setUndecorated(true);
		
		JPanel jp = new JPanel();
		JLabel jl1 = new JLabel("输入10进制数");
		t1 = new JTextField(10);
		//添加上部分
		jp.add(jl1);
		jp.add(t1);
		
		//中部分
		JPanel jp2 = new JPanel();
		jr = new JTextArea(6,20);
		//添加个文本域换行功能
		jr.setLineWrap(true);
		JScrollPane scroll = new JScrollPane(jr);
		JLabel jl2 = new JLabel("请选择进制:");
		//水平滚动条总是出现
//		scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		//竖直滚动条总是出现
		scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		
		jp2.add(scroll,BorderLayout.WEST);
		jp2.add(jl2);
		
		//尾部分
		JPanel jp3 = new JPanel();
		JPanel jp5 = new JPanel();
		jc1 = new JCheckBox("2进制");
		jc2 = new JCheckBox("8进制");
		jc3 = new JCheckBox("16进制");
		jc4 = new JCheckBox("10进制");
		
		ju1 = new JRadioButton("2进制");
		ju2 = new JRadioButton("8进制");
		ju3 = new JRadioButton("16进制");
		ju4 = new JRadioButton("10进制");
		
		jp3.add(jc1);
		jp3.add(jc2);
		jp3.add(jc3);
		jp3.add(jc4);
		JPanel jp4 = new JPanel();
		ButtonGroup bg = new ButtonGroup();
		JLabel w1 = new JLabel("请选择进制");
		jp4.add(w1);
		//单选框放到一个组里,再分别放进面板
		bg.add(ju1);
		bg.add(ju2);
		bg.add(ju3);
		bg.add(ju4);
		//分别放进面板
		jp4.add(ju1);
		jp4.add(ju2);
		jp4.add(ju3);
		jp5.add(ju4);
		
		jp2.add(jp3,BorderLayout.NORTH );
		jp2.add(jp4,BorderLayout.CENTER);
		jp2.add(jp5,BorderLayout.CENTER);
		//界面添加部分
		this.add(jp, BorderLayout.NORTH);
		this.add(jp2, BorderLayout.CENTER);
//		this.add(jp5, BorderLayout.SOUTH);
//		this.add(jp4, BorderLayout.PAGE_END);
		
		
		//界面显示操作
//		this.pack();
		this.setSize(350,320);
		this.setAlwaysOnTop(true);
		this.setLocationRelativeTo(null);
		this.setVisible(true);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
	}
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		new Windows54();
	}

}

(5)

package 实验五;

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

public class add55 extends JFrame {
	private JTextArea jr;
	private JTextField t1;
	private JTextField t2;
	private JTextField t3;
	
	public add55(){
		this.setTitle("添加组件的窗口");
		
		//文本域操作
		jr = new JTextArea(6,23);
		JPanel jp = new JPanel();
		//添加个文本域换行功能
		jr.setLineWrap(true);
		JScrollPane scroll = new JScrollPane(jr);
		//竖直滚动条总是出现
		scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);

		//添加上部分
		jp.add(scroll);
		
		//中部分
		JPanel jp2 = new JPanel();
		JPanel jp3 = new JPanel();
		JPanel jp4 = new JPanel();
		
		JLabel w1 = new JLabel("用户名");
		JLabel w2 = new JLabel("电话");
		
		t1 = new JTextField(7);
		t2 = new JTextField(7);
		t3 = new JTextField(15);
		
		
		JButton jb1 = new JButton("显示");
		JButton jb2 = new JButton("退出");
		//因为JButen是属于小器件类型的,所以一般的setSize不能对其惊醒大小的设置
		//所以一般我们用button.setPreferredSize(new Dimension(30,30));
		jb1.setPreferredSize(new Dimension(25,18));
		jb2.setPreferredSize(new Dimension(25,18));
		
		jb1.setBorder(BorderFactory.createRaisedBevelBorder());
		jb2.setBorder(BorderFactory.createRaisedBevelBorder());
		
		jb1.setFont(new java.awt.Font("宋体", 1, 10));
		jb2.setFont(new java.awt.Font("宋体", 1, 10));
		
//		jb1.setBackground(Color.gray);
//		jb2.setBackground(Color.gray);
		//添加进入面板
		jp2.add(w1);
		jp2.add(t1);
		jp2.add(w2);
		jp2.add(t2);
		
		jp3.add(t3);
		jp3.add(jb1);
		jp3.add(jb2);
		
		jp4.add(jp2);
		jp4.add(jp3);
		//添加到界面
		this.add(jp,BorderLayout.NORTH);
		this.add(jp4,BorderLayout.CENTER);
		
		//界面显示操作
		this.setSize(300,250);
		this.setAlwaysOnTop(true);
		this.setLocationRelativeTo(null);
		this.setVisible(true);
		this.setDefaultCloseOperation(3);
		
		//事件
		jb1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				jr.setText("用户名:"+t1.getText()+"\n"+"电 话:"+t2.getText());
				t3.setText("你按下了“显示“按钮");
            }
		});
		jb2.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(3);
            }
		});
	}
	public static void main(String[] args) {
		// TODO 自动生成的方法存根
		new add55();
	}

}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值