Java/Excercise

callback ch00 Main,SubActivity

낭구리 2021. 9. 9. 19:28
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