当前位置:文档之家› 实验五 GUI图形界面设计

实验五 GUI图形界面设计

实验五 GUI图形界面设计
实验五 GUI图形界面设计

学号:

《面向对象程序设计》实验报告与习题册

2014 / 2015 学年第1学期

系别计算机科学与技术系

专业计算机软件

班级

姓名

指导教师

目录

实验五 GUI图形界面设计

一实验目的与要求

1、掌握Awt与Swing的区别与联系;掌握Swing常用图像组件的使用;掌握主要的布局管理器的使用方法;

2、了解事件处理机制;掌握Swing常用图像组件的使用;掌握固定菜单和弹出式菜单的创建和使用;

二实验内容

1、设计并实现一个类似于windows操作系统附件中自带的计算器的一款简单的计算器,要求界面美观,设计合理;带有常用的菜单并实现其功能;能完成加、减、乘、除等简单的计算,在下面写出其核心代码。

package org.swing;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

class MyFrame extends JFrame{

public MyFrame(){

setTitle("Calculator");

MyPanel panel = new MyPanel();

add(panel);

pack(); //调整计算器窗口大小

}

}

class MyPanel extends JPanel{

private JButton display;

private JPanel panel;

private double result;

private String lastCommand;

private boolean start;

public MyPanel(){

setLayout(new BorderLayout());

result = 0;

lastCommand = "=";

start = true;

display = new JButton("0");

display.setEnabled(false);

add(display,BorderLayout.NORTH);

ActionListener insert = new InsertAction();

ActionListener command = new CommandAction();

panel = new JPanel();

panel.setLayout(new GridLayout(4,4));

addButton("7",insert);

addButton("8",insert);

addButton("9",insert);

addButton("/",command);

addButton("4",insert);

addButton("5",insert);

addButton("6",insert);

addButton("*",command);

addButton("1",insert);

addButton("2",insert);

addButton("3",insert);

addButton("-",command);

addButton("0",insert);

addButton(".",insert);

addButton("=",command);

addButton("+",command);

add(panel,BorderLayout.CENTER);

}

private void addButton(String label,ActionListener listener){ JButton button = new JButton(label);

button.addActionListener(listener);

panel.add(button);

}

private class InsertAction implements ActionListener{ public void actionPerformed(ActionEvent event){

String input = event.getActionCommand();

if(start){

display.setText("");

start = false;

}

display.setText(display.getText()+input);

}

}

private class CommandAction implements ActionListener{ public void actionPerformed(ActionEvent event){

String command = event.getActionCommand();

if(start){

if(command.equals("-")){

display.setText(command);

start = false;

}else

lastCommand = command;

}else{

calculate(Double.parseDouble(display.getText()));

lastCommand = command;

start = true;

}

}

}

public void calculate(double x){

if(lastCommand.equals("+"))

result+=x;

else if(lastCommand.equals("-"))

result-=x;

else if(lastCommand.equals("*"))

result*=x;

else if(lastCommand.equals("/"))

result/=x;

else if(lastCommand.equals("="))

result=x;

display.setText(""+result);

}

}

public class Calculator {

public static void main(String[] args){

MyFrame frame = new MyFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

}

运行结果

三实验内容中遇到的问题、解决方法和体会。

答:本次实验时计算器的设计,在本次实验中主要是界面的设计有点头疼,编着编着就头晕了后来发现书上有代码,就按照上面的代码写。经过本次实验知道写代码一定要静下心来,在以后的实验中一定要静下来才能学好。

相关主题
文本预览
相关文档 最新文档