Frame的简易加法计算器(组合类与内部类)
组合类
package com.zj.lesson02;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestCalc {
public static void main(String[] args) {
new MyFrame2().loading();
}
}
class MyFrame2 extends Frame{
private TextField field1;
private TextField field2;
private TextField field3;
public TextField getField1() {
return field1;
}
public void setField1(TextField field1) {
this.field1 = field1;
}
public TextField getField2() {
return field2;
}
public void setField2(TextField field2) {
this.field2 = field2;
}
public TextField getField3() {
return field3;
}
public void setField3(TextField field3) {
this.field3 = field3;
}
public void loading(){
field1 = new TextField(10);
field2 = new TextField(10);
field3 = new TextField(20);
Button button = new Button("=");
Label label = new Label("+");
setLayout(new FlowLayout(FlowLayout.LEFT,20,10));
add(field1);
add(label);
add(field2);
add(button);
add(field3);
button.addActionListener(new MyCalcListener(this));
pack();
setVisible(true);
}
}
class MyCalcListener implements ActionListener{
//组合类
MyFrame2 myFrame2;
public MyCalcListener(MyFrame2 myFrame2) {
this.myFrame2=myFrame2;
}
@Override
public void actionPerformed(ActionEvent e){
int Field1;
int Field2;
try {
Field1=Integer.parseInt(myFrame2.getField1().getText());
Field2=Integer.parseInt(myFrame2.getField2().getText());
myFrame2.getField3().setText(String.valueOf(Field1+Field2));
} catch (NumberFormatException numberFormatException) {
System.out.println("未输入数字");
}catch (Exception exception){
exception.printStackTrace();
}
}
}
内部类
package com.zj.lesson02;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TestCalc {
public static void main(String[] args) {
new MyFrame2().loading();
}
}
class MyFrame2 extends Frame{
private TextField field1;
private TextField field2;
private TextField field3;
public TextField getField1() {
return field1;
}
public void setField1(TextField field1) {
this.field1 = field1;
}
public TextField getField2() {
return field2;
}
public void setField2(TextField field2) {
this.field2 = field2;
}
public TextField getField3() {
return field3;
}
public void setField3(TextField field3) {
this.field3 = field3;
}
public void loading(){
field1 = new TextField(10);
field2 = new TextField(10);
field3 = new TextField(20);
Button button = new Button("=");
Label label = new Label("+");
setLayout(new FlowLayout(FlowLayout.LEFT,20,10));
add(field1);
add(label);
add(field2);
add(button);
add(field3);
button.addActionListener(new MyCalcListener());
pack();
setVisible(true);
}
//内部类
private class MyCalcListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent e){
int Field1;
int Field2;
try {
Field1=Integer.parseInt(field1.getText());
Field2=Integer.parseInt(field2.getText());
field3.setText(String.valueOf(Field1+Field2));
} catch (NumberFormatException numberFormatException) {
System.out.println("未输入数字");
}catch (Exception exception){
exception.printStackTrace();
}
}
}
}
运行结果: