一、实验目的
1.掌握图形界面设计。

2.掌握常用GUI控制组件及其事件处理。

二、实验内容

1.编程包含一个标签和一个按钮,单击按钮时,标签的内容在"你好"和"再见"之间切换。
2.设计一个窗口,窗口中包含有一个文本框,一个标签,两个按钮,当按下“文本一”按纽时,使得“Hello java!”显示在文本框中,按下“文本二”按纽时,使得“你好 Java!” 显示在文本框中(要求两个按纽之间使用网格布局,与其他组件共使用Frame默认布局管理)。

3. 试设计一个窗口,内含一个按钮。开始运行时,按钮显示“Click Me”字样,当按钮按下时,按钮显示为“Click Me Again”字样,再按一次,则按钮显示“Click Me”字样,依此循环。(1,2,3可以选作其一)

4.编程包含一个文本框和一个文本区域,在文本框中按回车键时,把文本框的内容写入文本区域。

5.试设计一个窗口,窗口界面如下图。包含Style菜单、Color菜单和Exit菜单,Style菜单设计字体的样式(包括Plane、Bold、Italic),Color(红、绿、蓝、自定义)菜单设计字体的颜色、Exit菜单(CloseWindow)退出系统。

代码实现:

1.

方法一:
package p;import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.*;public class T {public static void main(String[] args) {JFrame f=new JFrame();FlowLayout flow =new FlowLayout();f.setLayout(flow);//设置布局JButton b=new JButton("exchange");final JLabel j=new JLabel("hello");b.addActionListener(new ActionListener(){//利用匿名类public void actionPerformed(ActionEvent e) {if(j.getText().equals("hello"))j.setText("bye");else j.setText("hello");}});f.add(b); //先添加哪个,哪个组件就会在前面f.add(j);f.setBounds(20,20,200,200);f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}
}方法二:
package cn.nefu.edu.cn;import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;public class MyWindow extends JFrame implements ActionListener{JButton bt;JLabel bq1;public MyWindow(){FlowLayout flow =new FlowLayout();this.setLayout(flow);bq1=new JLabel("bye");bt=new JButton("exchange");bt.addActionListener(this);//监听本身,自身实现了接口ActionListenerthis.add(bt); this.add(bq1);validate();this.setBounds(20,20,200,200);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e) {//实现切换if(e.getSource()==bt){if(bq1.getText().equals("bye"))               bq1.setText("hello");else bq1.setText("bye");}}
}Test.java
package cn.nefu.edu.cn;public class Test {public static void main(String[] args) {new MyWindow();}
}

2.

方法一:

package cn.edu.nefu.zhihu;import java.awt.GridLayout;
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.JTextField;public class MyWindow2 extends JFrame implements ActionListener{JButton bt1;JButton bt2;JTextField wb;JLabel bq;public MyWindow2(){GridLayout grid=new GridLayout(2,2);this.setLayout(grid);wb=new JTextField();bq=new JLabel("name");bt1=new JButton("文本一");bt2=new JButton("文本二");this.add(bq);this.add(wb);this.add(bt1);this.add(bt2);bt1.addActionListener(this);bt2.addActionListener(this);this.setVisible(true);this.setBounds(30,30,300,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e) {if(e.getSource()==bt1){wb.setText("Hello java!");}else wb.setText("你好 Java!");}
}package cn.edu.nefu.zhihu;public class Test2 {public static void main(String[] args) {new MyWindow2();}
}

方法二:

package cn.edu.nefu.zhihu;import java.awt.BorderLayout;public class MyWindow2 extends JFrame implements ActionListener{JButton bt1;JButton bt2;JTextField wb;JLabel bq;JPanel mb;public MyWindow2(){mb=new JPanel();GridLayout grid=new GridLayout(1,2);mb.setLayout(grid);wb=new JTextField();bq=new JLabel("name");bt1=new JButton("文本一");bt2=new JButton("文本二");this.add(bq,BorderLayout.WEST);this.add(wb,BorderLayout.CENTER);mb.add(bt1);mb.add(bt2);this.add(mb,BorderLayout.SOUTH);bt1.addActionListener(this);bt2.addActionListener(this);this.setVisible(true);this.setBounds(30,30,300,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e) {if(e.getSource()==bt1){wb.setText("Hello java!");}else wb.setText("你好 Java!");}
}
package cn.edu.nefu.zhihu;public class Test2 {public static void main(String[] args) {//new Jisuanqi("计算器");new MyWindow2();}
}

3.

package cn.edu.nefu.zhihu;import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;public class MyWindow3 extends JFrame implements ActionListener{JButton an;MyWindow3(){an=new JButton("Click Me");this.add(an);an.addActionListener(this);this.setVisible(true);this.setBounds(50,50,200,150);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}@Overridepublic void actionPerformed(ActionEvent arg0) {if(an.getText().equals("Click Me")){an.setText("Click Me Again");}else an.setText("Click Me");}
}package cn.edu.nefu.zhihu;public class Test2 {public static void main(String[] args) {new MyWindow3();}
}

4.

package cn.edu.nefu.zhihu;import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JFrame;
import javax.swing.JTextArea;
import javax.swing.JTextField;public class MyWindow4 extends JFrame implements ActionListener {JTextField t1;JTextArea t2;MyWindow4(){t1=new JTextField(20);t2=new JTextArea(20,10);this.add(t1,BorderLayout.WEST);this.add(t2,BorderLayout.CENTER);t1.addActionListener(this);this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setBounds(100,100,200,400);}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource()==t1){t2.setText(t2.getText()+"\n"+t1.getText());t1.setText(" ");}}}package cn.edu.nefu.zhihu;public class Test2 {public static void main(String[] args) {new MyWindow4();}
}

5.

package cn.edu.nefu.zhihu;import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;public class MyWindow5 extends JFrame {JMenuBar menubar;JMenu menu1,menu2,menu3;JMenuItem item1,item2,item3,item4,item5,item6,item7,item8;public MyWindow5(String ss){this.setTitle(ss);this.setSize(200,250);this.setVisible(true);menubar=new JMenuBar();this.setJMenuBar(menubar);menu1=new JMenu("Style");menu2=new JMenu("Color");menu3=new JMenu("Exit");menubar.add(menu1);menubar.add(menu2);menubar.add(menu3);item1=new JMenuItem("Plane");item2=new JMenuItem("Bold");item3=new JMenuItem("Italic");item4=new JMenuItem("Red");item5=new JMenuItem("Green");item6=new JMenuItem("Blue");item7=new JMenuItem("User-defined");item8=new JMenuItem("Close Window");menu1.add(item1);menu1.add(item2);menu1.add(item3);menu2.add(item4);menu2.add(item5);menu2.add(item6);menu2.add(item7);menu3.add(item8);validate();this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}
}package cn.edu.nefu.zhihu;public class Test2 {public static void main(String[] args) {new MyWindow5("a Window");}
}

6.

计算器的简易基本实现,只能实现整数(小数的也可以,但是界面不太友好)的加减乘除四则运算,且经过每一次计算之后都要进行清零,否则会计算有误。

代码实现如下:

package cn.edu.nefu.zhihu;import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;public class Jisuanqi extends JFrame{JTextField wbk;JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;JButton b10,b11,b12,b13,b14;JButton b15,b16;JPanel mb;double acc=0;String yunSuanFu=null;public Jisuanqi(String ss){super(ss);wbk=new JTextField("0");b0=new JButton("0");b1=new JButton("1");b2=new JButton("2");b3=new JButton("3");b4=new JButton("4");b5=new JButton("5");b6=new JButton("6");b7=new JButton("7");b8=new JButton("8");b9=new JButton("9");b10=new JButton(".");b11=new JButton("+");b12=new JButton("-");b13=new JButton("*");b14=new JButton("/");b15=new JButton("=");b16=new JButton("C");mb=new JPanel();GridLayout grid=new GridLayout(4,4,4,12);mb.setLayout(grid);this.add(wbk,BorderLayout.NORTH);wbk.setHorizontalAlignment(JTextField.RIGHT);this.add(mb,BorderLayout.CENTER);mb.add(b1);mb.add(b2);mb.add(b3);mb.add(b11);mb.add(b4);mb.add(b5);mb.add(b6);mb.add(b12);mb.add(b7);mb.add(b8);mb.add(b9);mb.add(b13);mb.add(b0);mb.add(b10);mb.add(b15);mb.add(b14);this.add(b16,BorderLayout.SOUTH);A a=new A();b0.addActionListener(a);b1.addActionListener(a);b2.addActionListener(a);b3.addActionListener(a);b4.addActionListener(a);b5.addActionListener(a);b6.addActionListener(a);b7.addActionListener(a);b8.addActionListener(a);b9.addActionListener(a);b10.addActionListener(a);B b=new B();b11.addActionListener(b);b12.addActionListener(b);b13.addActionListener(b);b14.addActionListener(b);b15.addActionListener(new C());b16.addActionListener(new D());b16.setFont(new Font("宋体",Font.BOLD,28));this.setVisible(true);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setBounds(300,300,250,325);}class A implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {String s=e.getActionCommand();//s为获取该事件的字符串String ss=wbk.getText();//ss为文本框中的内容if(ss.equals("0")||ss.equals("+")||ss.equals("-")||ss.equals("*")||ss.equals("/")){wbk.setText(s);}else{wbk.setText(ss+s);}}}class B implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {acc=Double.parseDouble(wbk.getText());yunSuanFu=e.getActionCommand();wbk.setText(e.getActionCommand());}}class C implements ActionListener{@Overridepublic void actionPerformed(ActionEvent e) {String ss=wbk.getText();double sum1=Double.parseDouble(ss);if(yunSuanFu.equals("+"))wbk.setText(Double.toString(acc+sum1));if(yunSuanFu.equals("-"))wbk.setText(Double.toString(acc-sum1));if(yunSuanFu.equals("*"))wbk.setText(Double.toString(acc*sum1));if(yunSuanFu.equals("/"))wbk.setText(Double.toString(acc/sum1));}}class D implements ActionListener{@Overridepublic void actionPerformed(ActionEvent arg0) {wbk.setText("0");acc=0;}}
}package cn.edu.nefu.zhihu;public class Test2 {public static void main(String[] args) {new Jisuanqi("计算器");}
}

JAVA实验七 图形用户界面的设计与实现相关推荐

  1. java上机实验学习笔记————实验七 图形用户界面设计

    java上机实验学习笔记----实验七 图形用户界面设计 题一: 计算器程序雏形 该窗口模拟Windows的计算器功能,添加一个文本行和4个按钮,单击[1].[2].[+]按钮时,将按钮的标签添加到文 ...

  2. Java实验二 图形界面设计

    学院 计算机科学与教育软件学院 年级.专业.班 网络16* 姓名 卟咚君 学号 1606100*** 实验课程名称 Java语言实验 成绩 实验项目名称 图形界面设计 指导老师 ** 一.实验目的 • ...

  3. [MATLAB]图形用户界面的设计(按钮控制绘图)

    本实验取材于<科学计算与MATLAB语言>主要讲述如何操控matlab图形窗口. 图形用户界面的组成 控件对象及其操作 菜单对象及其操作 图像用户界面的组成 它是用户与计算机进行信息交流的 ...

  4. java实验七实验报告_Java实验报告-7-风扇

    Java实验报告 实验题目实验七综合实验风扇 代码: import java.awt.Col or; import java.awt.Graphics; import java.awt.event.A ...

  5. java实验七输入输出流_实验七 输入输出流

    java 程序设计实验 实验七 输入输出流(2) 一.实验目的 输入和输出是Java的核心功能之一.本节学习了Inputstream和OutputStream,Reader,Writer的几个子类,通 ...

  6. Java 实验五 图形用户界面设计 制作一个简单的计算器

    一.实验内容: [实验内容] 1.图形界面中有一个标签.一个文本框和一个按钮,编写程序实现:点击按钮后,将文本的内容取出,作为标签文本复制给标签. (1)根据题目要求,选择合适的布局方案,添加相应的组 ...

  7. java实验七输入输出流_实验六_Java的输入输出流

    JAVA的输入输出流 实验六 Java的输入输出流 实验目的 1. 理解I/O流的概念,掌握其分类 2. 掌握文本文件读写.二进制文件读写 实验环境 JDK1.4以上版本, Eclipse集成开发环境 ...

  8. 单片机原理及应用 实验七 直流数字电压表设计

    单片机原理及应用(C51版) 实验目的及要求: 1.掌握LED动态显示和A/D转换接口设计方法: 2.按照教材图A.94 .绘制实验7基本电路原理图: 3.采用L ED动态显示原理和查询法AD转换编程 ...

  9. Java 实验七 文件输入和输出

    选择题 程序片段编程题 1. 从文件中读取成绩,按照要求处理后,并输出到指定文件中 [问题描述] 现有如下格式的成绩单(文本格式)score.txt. name:zhangsan,shuxue 72, ...

最新文章

  1. ATS 4.2.3自定义日志文件格式的方法
  2. mssql sqlserver sql脚本自动遍历重复生成指定表记录
  3. oracle不维护java_宣布 Java 8 停止维护后,Oracle 又毙掉了 JavaOne!
  4. 山东师范大学志愿推荐系统邀请码_快看点邀请码填写HGC1QK快看点邀请码填写HGC1QK快看点邀请码大家千万不要乱填写哦...
  5. go web db每次关闭_竟然不用写代码!一款可视化 Web 管理后台生成工具
  6. Spring依赖注入的模式和类型
  7. HDU1425 sort【排序】
  8. docker 安装portainer、gogs、redis、mongodb、es、rabbitmq、mysql、jenkins、harbor
  9. Github-emoji表情图像大全
  10. 中国建设银行-跨境易支付
  11. Linux使用libmodbus源码开发,LibModbus源码分析
  12. 2021年中国上市公司发明授权数量及分布:发明授权数量连续5年增长,广东省位居全国第一[图]
  13. 边缘检测论文简读、开源代码和数据集合集
  14. 7-过零检测算法分析信号周期(app-designer
  15. 移动互联网的未来在非洲
  16. Could not calculate build plan: Plugin org.apache.maven.plugins:maven-war-plugin:3.2.2
  17. 【c++数据结构】栈混洗的甄别算法
  18. 如何巧用微信生态搭建和运营私域流量
  19. linux安装教程以及使用时遇到的问题和解决方法
  20. 如何实现产销平衡_六个动作实现制造企业产销协调管理

热门文章

  1. 实名认证API“智慧数据”打造企业服务新入口
  2. CTF writeup 0_IDF实验室
  3. 19隆冬的倔强(updating)
  4. 用python如何制作表格_Python中如何用xlwt制作表格
  5. 一门课程学习转录组调控分析和R可视化第十四期 (线上线下开课)
  6. VMware 安装Mac os 10.11 苹果系统
  7. VMware16 安装Mac 10.14系统/苹果系统
  8. 从零开始搭建完整的电影全栈系统(六)——影片Api示例、说明及应用
  9. 安装两个虚拟机只为验证一个猜测,结果不出所料(Unity | deviceUniqueIdentifier | 设备ID相同)
  10. 鸿蒙系统功能,华为HarmonyOS2.0系统功能都有哪些呢-华为鸿蒙系统HarmonyOS2.0功能介绍[图文]_咖绿茵手游站...