体系结构—层次风格

本文介绍了一个简单的Java Swing图形用户界面(GUI)应用示例——一个基本的加法计算器。该应用分为三层:用户界面层负责输入输出;测试案例层定义了计算逻辑接口并实现了具体的加法操作;实现层提供了计算功能的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一层为用户界面层

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

public class TestingGUI extends JFrame{
		//申明需要的组件
	    private final JTextField jtf1,jtf2,jtf3;
	    private final JTextArea jta;
	 
	    public TestingGUI() {
	        setTitle("计算");//设置窗口标题
	        setSize(320, 360);//设置窗口大小
	        setLocationRelativeTo(null);//设置窗口居中
	        setDefaultCloseOperation(EXIT_ON_CLOSE);//设置关闭时退出虚拟机
	        getContentPane().setLayout(new FlowLayout());//设置窗口布局为流式布局
	        JPanel jp = new JPanel(new GridLayout(4, 2));//设置jp面板为表格布局4行2列
	        //第一行
	        JPanel jp01 = new JPanel();
	        JLabel jl1 = new JLabel("a:");
	        jp01.add(jl1);
	        JPanel jp1 = new JPanel();
	        jtf1 = new JTextField(8);
	        jp1.add(jtf1);
	        //第二行
	        JPanel jp02 = new JPanel();
	        JLabel jl2 = new JLabel("b:");
	        jp02.add(jl2);
	        JPanel jp2 = new JPanel();
	        jtf2 = new JTextField(8);
	        jp2.add(jtf2);
	        //第三行
	        JPanel jp03 = new JPanel();
	        JLabel jl3 = new JLabel("a+b:");
	        jp03.add(jl3);
	        JPanel jp3 = new JPanel();
	        jtf3 = new JTextField(8);
	        jp3.add(jtf3);
	        //第四行
	        JPanel jp04 = new JPanel();
	        JLabel jl4 = new JLabel("");
	        jp04.add(jl4);
	        JPanel jp4 = new JPanel();
	        JButton jb = new JButton("确认");
	        jp4.add(jb);
	         
	        jp.add(jp01);
	        jp.add(jp1);
	        jp.add(jp02);
	        jp.add(jp2);
	        jp.add(jp03);
	        jp.add(jp3);
	        jp.add(jp04);
	        jp.add(jp4);
	        getContentPane().add(jp);
	        jta = new JTextArea();
	        jta.setColumns(20);//设置文本域的大小
	        jta.setEditable(false);//设置文本域不可编辑
	        jta.setBackground(jp.getBackground());//设置文本域的背景色和面板一样
	        getContentPane().add(jta);
	        jb.addActionListener(new ActionListener() {//给按钮添加事件
				@Override
				public void actionPerformed(ActionEvent e) {//点击按钮,显示信息到文本域
					// TODO Auto-generated method stub
					int aa = Integer.valueOf(jtf1.getText().toString());
	                int bb = Integer.valueOf(jtf2.getText().toString());
	                TestCase tc=new TestCase(aa,bb);
	                String cc=Integer.toString(tc.execute(aa, bb));
	                jtf3.setText(cc);
				}
	        });
	}
	    public static void main(String[] args) {
	        new TestingGUI().setVisible(true);//创建窗口,被设置为可见
	    }
}

第二层为测试案例层

package sss;

public interface inTestCase {
    public int execute(int lyy_a,int lyy_b);
}

package sss;

public class TestCase implements inTestCase{
	int lyy_u,lyy_v;
    public TestCase(int lyy_u,int lyy_v)
    {
    	this.lyy_u=lyy_u;
    	this.lyy_v=lyy_v;
    }
	@Override
	public int execute(int lyy_aa,int lyy_bb) {
		Calculating z=new Calculating(lyy_aa,lyy_bb);
		return z.calculating(lyy_aa,lyy_bb);
	}

}

第三层为实现层

package sss;

public interface inCalculating {
	int calculating(int lyy_x,int lyy_y);
}

package sss;

public class Calculating implements inCalculating{
    int lyy_c;
    int lyy_d;
    public Calculating(int lyy_c,int lyy_d)
    {
    	this.lyy_c=lyy_c;
    	this.lyy_d=lyy_d;
    }
	@Override
	public int calculating(int lyy_x, int lyy_y) {
		return lyy_x+lyy_y;
	}
}

运行结果:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值