第一层为用户界面层
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;
}
}
运行结果: