package ch00;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class MainActivity extends JFrame implements CallbackBtnAction {
int count;
JLabel label;
public MainActivity() {
count = 0;
label = new JLabel(count + "");
setSize(300, 300);
setLayout(new FlowLayout());
add(label);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
}
@Override
public void clickedAddBtn() {
System.out.println(" + 버튼 콜백받았습니다.");
count++;
label.setText(count + "");
}
@Override
public void clickedMinusBtn() {
System.out.println("- 버튼 콜백받았습니다");
count--;
label.setText(count + "");
}
@Override
public void passValue(int value) {
label.setText("매개변수로 값 전달 받음 : " + value);
}
}
package ch00;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class SubActivity extends JFrame implements ActionListener {
JButton btnAdd;
JButton btnMinus;
JButton btnPassValue;
CallbackBtnAction callbackBtnAction;
public SubActivity(CallbackBtnAction callbackBtnAction) {
this.callbackBtnAction = callbackBtnAction;
setSize(300, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
btnAdd = new JButton("더하기 버튼");
btnMinus = new JButton("빼기 버튼");
btnPassValue = new JButton("값 전달하기");
setVisible(true);
setLayout(new FlowLayout(FlowLayout.CENTER,50,50));
add(btnAdd);
add(btnMinus);
add(btnPassValue);
btnAdd.addActionListener(this);
btnMinus.addActionListener(this);
btnPassValue.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
JButton targetBtn = (JButton)e.getSource();
if(targetBtn.getText().equals(btnAdd.getText())){
this.callbackBtnAction.clickedAddBtn();
}else if(targetBtn.getText().equals(btnMinus.getText())) {
this.callbackBtnAction.clickedMinusBtn();
}else {
this.callbackBtnAction.passValue(400);
}
}
}
package ch00;
public interface CallbackBtnAction {
public void clickedAddBtn();
public void clickedMinusBtn();
public void passValue(int value);
}
package ch00;
public class MainTest {
public static void main(String[] args) {
MainActivity mainActivity = new MainActivity();
new SubActivity(mainActivity);
}
}
'Java > Excercise' 카테고리의 다른 글
callback 02 Activity 메서드를 이용한 콜백 (0) | 2021.09.09 |
---|---|
callback ch01 CallbackBtnAction (0) | 2021.09.09 |
swing ch06 MiniAmongUs (0) | 2021.09.08 |
thread ch03 TerminateThread (0) | 2021.09.08 |
thread ch03 JoinTest (0) | 2021.09.08 |