인터페이스를 설계한 후에는 항상 해당 실행 작업을 구성 요소에 추가해야 합니다. JAVA에는 "리스너"라고 하는 해당 실행 작업을 구성 요소에 추가하는 프로세스를 "등록"이라고 합니다. 여기서 "리스너"는 해당 실행 기능을 포함하는 인터페이스입니다. 당신이 해야 할 일은 메소드 기능을 직접 구현한 다음 이를 컴포넌트에 "등록"하는 것입니다. 소스를 사세요. 기름, 엄마는 내가 며칠 동안 거리를 돌아다닐지, 상사와 어떻게 흥정할지, 집에 어떻게 갈지 신경 쓰지 않는다. 엄마에게 필요한 최종 결과는 내가 간장을 배달할 수 있다는 것이다. 학기 중에 간장을 구입하는 과정은 내가 실현했습니다. 이벤트 처리 메커니즘의 "청취자"이며 어머니가 나에게 간장 구입을 요청하면 이벤트를 "등록"합니다. 하하, 다시 한 번 JAVA의 구현과 인터페이스 분리를 완벽하게 반영했습니다.
JAVA의 컴포넌트 이벤트에는 ActionEvent, KeyEvent, FocusEvent, ComponentEvent, MouseEvent, adjustmentEvent 등이 있습니다. 각 컴포넌트는 이벤트의 전부 또는 일부를 지원하며, 해당 이벤트에는 해당 이벤트 발생을 모니터링하고 인터페이스 메소드, 프로그램을 구현하는 해당 리스너가 있습니다. 멤버가 해야 할 일은 이벤트 클래스 개체를 만들고 그 안에 함수를 구현한 다음 해당 구성 요소에 등록하는 것입니다. 다음은 코드 데모입니다.
다음과 같이 코드 코드를 복사합니다 .
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
공개 클래스 ButtonDemo {
privateJFrame
프레임=new JFrame("ButtonDemo");
비공개J버튼
b1 = new JButton("버튼 1"),
b2 = new JButton("버튼 2");
privateJTextField
txt = 새로운 JTextField(10);
//여기에 버튼을 모니터링하는 데 사용되는 익명 클래스가 있습니다.
개인 ActionListener bl = 새로운 ActionListener() {
//리스닝 클래스에 추상 함수를 구현합니다.
공공 무효 actionPerformed(ActionEvent e) {
문자열 이름 = ((JButton)e.getSource()).getText();
txt.setText(이름);
}
};
공개 ButtonDemo () {
//두 개의 버튼에 청취 객체를 등록합니다.
b1.addActionListener(bl);
b2.addActionListener(bl);
프레임.setLayout(new FlowLayout());
프레임.추가(b1);
프레임.추가(b2);
프레임.추가(txt);
프레임.setVisible(true);
프레임.setSize(200,150);
}
공개 정적 무효 메인(String[] args) {
새로운 ButtonDemo();
}
}
청취 인터페이스에 둘 이상의 함수가 있고 함수 중 하나만 구현하려는 경우 프로그램을 실행할 수 없다는 것은 명백합니다. 왜냐하면 컴파일되기 전에 인터페이스의 모든 함수를 구현해야 하고 프로그램이 실행되기 때문입니다. 달릴 수 있어, 일어나면 어떡하지? 하하, 확실히 JAVA 언어 디자이너는 이 점을 고려하여 기본적으로 인터페이스의 모든 기능을 구현하고 "Adapter" 클래스를 상속하며 관심 있는 기능을 재정의하는 "Adapter"라는 도구를 제공합니다. 그게 다야 :
다음과 같이 코드 코드를 복사합니다 .
MyMouseListener 클래스는 MouseAdapter를 확장합니다.
공공 무효 mouseClicked(MouseEvent e){
//마우스 클릭시 동작 구현
}
}