05 java事件發布訂閱(SpringBoot內置生命周期事件詳解 SpringBoot源碼(十))

时间:2024-06-03 07:16:21 编辑: 来源:

t()

{

activateMyEvent();

}

}

4,測試類

public class Test {

public static void main(String[] args)

{

MyObject mo=new MyObject();

//注冊該事件

mo.addMyListener(new MyListener());

//觸發該事件

mo.test();

}

}

怎么在java里將teacherzhang注冊為getproblem的actionevent事件監視器

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;public class Teacher {

int numberOne,numberTwo;

String operator="";

boolean right;

public int giveNumberOne(int n){

numberOne=(int)(Math.random()*n)+1;

return numberOne;

}

public int giveNumberTwo(int n){

numberTwo=(int)(Math.random()*n)+1;

return numberTwo;

}

public String giveOperator(){

double d=Math.random();

if(d>=0.8)

operator="+";

else if(d<0.8d>0.5)

operator="-";

else if(d<=0.5d>0.2)

operator="*";

else if(d<=0.2)

operator="/";

return operator;

}

public boolean getRight(int answer){

if(operator.equals("+")){

if(answer==numberOne+numberTwo)

right=true;

else

right=false;

}

else if(operator.equals("-")){

if(answer==numberOne-numberTwo)

right=true;

else

right=false;

}

else if(operator.equals("*")){

if(answer==numberOne*numberTwo)

right=true;

else

right=false;

}

else if(operator.equals("/")){

if(answer==numberOne/numberTwo)

right=true;

else

right=false;

}

return right;

}

}

public class ComputerJFrame extends JFrame implements ActionListener{

TextField textOne,textTwo,textResult;

Button getProblem,giveAnswer;

Label operatorLabel,message;

Teacher teacher;

ComputerJFrame(String s){

super(s);

teacher = new Teacher();

setLayout(new FlowLayout());

textOne = new TextField(10);

textTwo = new TextField(10);

textResult = new TextField(10);

operatorLabel = new Label("+");

getProblem = new Button("獲取題目");

giveAnswer = new Button("確認答案");

add(getProblem);

add(textOne);

add(operatorLabel);

add(textTwo);

add(new Label("="));

add(textResult);

add(giveAnswer);

add(message);

textResult.requestFocus();

textOne.setEditable(false);//該方法設置文本框的可編輯性

textTwo.setEditable(false);

getProblem.addActionListener(this);//創建監視器

giveAnswer.addActionListener(this);

textResult.addActionListener(this);

setBounds(100,100,450,100);//設置出現屏幕上時的初始位置

setLocationRelativeTo(null);//居中

setVisible(true);//窗口的可見性

validate();

addWindowFocusListener(new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

}

);

}

public void actionPerformed(ActionEvent e){

if(e.getSource()==getProblem){

int number1 = teacher.giveNumberOne(100);

int number2 = teacher.giveNumberTwo(100);

String operator = teacher.giveOperator();

textOne.setText(""+number1);//設置文本框中為參數字符串指定的文本

textTwo.setText(""+number2);

operatorLabel.setText(operator);

textResult.setText(null);

}

if(e.getSource()==giveAnswer){

String answer = textResult.getText();

try{ int result = Integer.parseInt(answer);

if(teacher.getRight(result)==true){

}

else{

}

}

catch(NumberFormatException ex){

message.setText("請輸入數字字符");

}

}

textResult.requestFocus();

validate();

}

}public class MainClass {

public static void main(String[] args) {

ComputerJFrame frame;

frame = new ComputerJFrame("算術測試");

}

}

搜索关键词: