天津理工大学实验报告
学院(系)名称:计算机与通信工程学院
姓名
班级
许达兴
学号
20091996
专业
计算机科学与技术
2009 级 2 班
实验项目 实验四:Java GUI 设计
课程名称
实验时间
批改意见
Java 语言程序设计
课程代码
0660266
实验地点
成绩
7_215
实验内容:
教师签字:
1. 运用 Java Swing 技术实现一个简单的“计算机”,界面参考如下:
菜单分别为:
实验目的:
1.理解并掌握 Java 中图形用户界面设计技术;
2.掌握典型控件(按钮、文本框、表格、树等)的用法;
3.掌握并能熟练应用 Java Swing 事件机制。
实验要求:
1.按照要求编制程序;
3.为增加程序可读性,请在程序中对类成员进行适当注释说明;
4.整理上机步骤,总结经验和体会;
5.认真完成并按时提交实验报告。
【实验过程记录(源程序、测试用例、测试结果及心得体会等)】
代码内容:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GUI {
public static void main(String args[])
{
Caculator cal=new Caculator("计算器");
}
}
class Caculator extends JFrame
{
JMenuBar menubar;
JMenu menu1,menu2;
JMenuItem item1,item2,item3,item4;
JTextField text;
num0,num1,num2,num3,num4,num5,num6,num7,num8,num9,jia,jian,cheng,chu,
dengyu,clear,out;
JButton
JButton b[];
Caculator(String s)
{
//菜单栏
setTitle(s);
setSize(260,260);
setLocation(200,200);
setVisible(true);
menubar=new JMenuBar();
menu1=new JMenu("编辑(E)");
menu2=new JMenu("帮助(H)");
item1=new JMenuItem("复制(C)");
item2=new JMenuItem("帮助主题(H)");
item3=new JMenuItem("关于计算器(A)");
item4=new JMenuItem("黏贴(P)");
item1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEv
ent.CTRL_MASK));
item4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEv
ent.CTRL_MASK));
menu1.add(item1);
menu1.add(item4);
menu2.add(item2);
menu2.add(item3);
menubar.add(menu1);
menubar.add(menu2);
setJMenuBar(menubar);
//文本框
text=new JTextField(21);
text.setText("0. ");
text.setEditable(false);
text.setHorizontalAlignment(JTextField.RIGHT);
add(text);
//按钮
b = new JButton[3];
b[0]=new JButton("Backspace"); b[0].setPreferredSize(new
Dimension(100,29)); b[0].setForeground(Color.RED);add(b[0]);
b[1]=new JButton(""+"CE");
b[1].setPreferredSize(new
Dimension(60,29)); b[1].setForeground(Color.RED);add(b[1]);
b[2]=new JButton(""+"C");
b[2].setPreferredSize(new
Dimension(60,29)); b[2].setForeground(Color.RED);add(b[2]);
add (new Button (" "+"7
"+" "));
add (new Button (" "+"8
"+" "));
add (new Button (" "+"9
"+" "));
add (new Button (" "+"/
"+" "));
add (new Button (" "+"sqrt"+" "));
add (new Button (" "+"4
"+" "));
add (new Button (" "+"5
"+" "));
add (new Button (" "+"6
"+" "));
add (new Button (" "+"*
"+" "));
add (new Button (" "+"%
"+" "));
add (new Button (" "+"1
"+" "));
add (new Button (" "+"2
"+" "));
add (new Button (" "+"3
"+" "));
add (new Button (" "+"-
"+" "));
add (new Button (" "+"1/x "+" "));
add (new Button (" "+"0
"+" "));
add (new Button (" "+"-/+ "+" "));
add (new Button (" "+".
"+" "));
add (new Button (" "+"+
"+" "));
add (new Button (" "+"=
"+" "));
//布局
FlowLayout flow = new FlowLayout();
flow.setHgap(5); //设置高度间隙
flow.setVgap(6);//设置水平间距
flow.setAlignment(FlowLayout.LEFT);
setLayout(flow);
validate();
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
}
运行结果: