그래서 일반적으로 C, C++ 및 C# 프로그래머이며 대부분의 GUI 경험이 C# WPF입니다. Java를 사용하는 프로젝트에 배치되었고 Java와 잘 어울리지 않는 C#에 대한 어휘를 찾고 있습니다.자바 작업 설명
하나의 이슈는 JButtons를 다루었으며 아마도 C#에서 '델리게이트'라고 알려진 것을 가지고 있습니다. 이 example에서 코드의이 비트가있다 : 함수가 (매개 변수로 또는 전달) 매개 변수로 정의된다
간단하게, 어떤이가 호출jbnButton1.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
jtfInput.setText("Button 1!");
}
});
? 또한 이것이 최선의 방법입니까? 내가하고있는 프로젝트에서 Initialize() 함수는 단추, 체크 상자 등에 대해 이와 같은 함수로 채워져있어서 다소 비 휘발성 함수가됩니다. 나는 Initialize() 내에서 대신 클래스 레벨에서 정의하는 것을 선호한다.
다른 example (맨 위 코드 예)으로 연결됩니다. 이러한 코드 라인 : 거의
b1.addActionListener(this);
b3.addActionListener(this);
...
}
public void actionPerformed(ActionEvent e) {
if ("disable".equals(e.getActionCommand())) {
b2.setEnabled(false);
b1.setEnabled(false);
b3.setEnabled(true);
} else {
b2.setEnabled(true);
b1.setEnabled(true);
b3.setEnabled(false);
}
}
, 코드 (외부 I 원하는 범위에 정의 된 동일한 이벤트 핸들러에 B3 버튼 하나 B1, 버튼 세 가지의 액션을 지정 어디 버튼이 초기화되고 있습니다). 다른 기능을 가리킬 수있는 방법이 있습니까? 또한 호출하여
.addActionListener(this);
어떻게 컴파일러가 this에서 actionPerformed (ActionEvent e)를 사용합니까? 조치가 'actionPerformed (ActionEvent e)'로 해석 될 것이라고 미리 정의 된 항목이 있습니까?
을 자동으로 호출합니다. 이것은 현재 ActionListener 인터페이스를 구현해야하는 클래스입니다. 컴파일러는 actionPerformed를 사용하도록 "파악하지"않습니다. 대신 addActionListener는 매개 변수가 actionPerformed() 메소드를 포함하는 ActionListener 인터페이스를 구현해야합니다. ActionEvent.getSource()를 사용하여 b1 또는 b3을 클릭했는지 확인한 다음 actionPerformed 메서드에서 적절한 메서드를 호출합니다. – DwB