>Java >java지도 시간 >Java의 버튼 클릭 이벤트 처리 방법에 대한 자세한 설명

Java의 버튼 클릭 이벤트 처리 방법에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-04-17 10:45:007967검색

다음 편집기는 Java에서 버튼 클릭 이벤트를 처리하는 방법을 제공합니다. 에디터가 꽤 좋다고 생각해서 지금 공유해서 참고용으로 올려보겠습니다. 편집기를 따라 살펴보겠습니다.

다양한 이벤트 소스가 다양한 유형의 이벤트를 생성할 수 있습니다. 예를 들어 버튼은 ActionEvent 객체를 보낼 수 있고 창은 WindowEvent 객체를 보낼 수 있습니다.

AWT 시간 처리 메커니즘 개요:

1. 특정 리스너 인터페이스 클래스의 인스턴스입니다.

2. 이벤트 소스는 리스너 객체를 등록하고 이벤트 객체를 보낼 수 있는 객체입니다.

3. 이벤트 소스는 이벤트 객체를 등록된 모든 리스너에게 전달합니다.

4. 리스너 객체는 이벤트 객체의 정보를 사용하여 이벤트에 응답하는 방법을 결정합니다.

다음은 리스너의 예입니다.


ActionListener listener = ...;
JButton button = new JButton("OK");
button.addActionListener(listener);

이제 버튼을 누를 때마다 " Action 이벤트'를 실행하면 리스너 객체에 알림이 전달됩니다. 버튼의 경우, 우리가 생각하는 액션 이벤트는 버튼을 클릭하는 것입니다.

ActionListener 인터페이스를 구현하려면 리스너 클래스에 ActionEvent 객체 매개변수를 받는 actionPerformed라는 메서드가 있어야 합니다.


class MyListener implements ActionListener
{
 ...;
 public void actionPerformed(ActionEvent event)
 {
   //reaction to button click goes here
 }
}

사용자가 버튼을 클릭하는 한 JButton 객체는 ActionEvent 객체를 생성한 다음 Listener.actionPerformed(event)를 호출하여 이벤트 객체를 전달합니다. 버튼처럼 이벤트 소스에 여러 리스너 객체를 추가할 수 있습니다. 이런 방식으로 사용자가 버튼을 클릭할 때마다 버튼은 모든 리스너의 actionPerformed 메서드를 호출합니다.

예: 버튼 클릭 이벤트 처리

이벤트 위임 모델에 대한 이해를 돕기 위해 간단한 응답 예를 보여드립니다. 버튼 클릭 이벤트 꼭 알아야 할 내용을 설명해주세요. 이 예에서는 패널에 버튼 3개를 배치하고 버튼에 대한 작업 리스너 역할을 할 리스너 객체 3개를 추가하려고 합니다.

이 경우 사용자가 패널의 버튼을 클릭하는 한 관련 리스너 객체는 버튼이 클릭되었음을 나타내는 ActionEvent 객체를 수신합니다. 샘플 프로그램에서 리스너 객체는 패널의 배경색을 변경합니다.

버튼 클릭 이벤트를 수신하는 방법을 설명하기 전에 먼저 버튼을 만드는 방법과 버튼을 패널에 추가하는 방법을 설명해야 합니다.

버튼 생성자에서 레이블 문자열, 아이콘 또는 둘 다를 지정하여 버튼을 생성할 수 있습니다. 다음은 두 가지 예입니다.


JButton yellowButton = new JButton("Yellow");
JButton blueButton = new JButton(new ImageIcon("blue-ball.gif"));

패널에 버튼을 추가하려면 추가 메소드를 호출해야 합니다.


JButton yellowButton = new JButton("Yellow");
JButton blueButton = new JButton("Blue");
JButton redButton = new JButton("Red");

buttonPanel.add(yellowButton);
buttonPanel.add(blueButton);
buttonPanel.add(redButton);

이제 패널에 버튼을 추가하는 방법을 알았으므로 패널이 이러한 버튼을 들을 수 있도록 하는 코드를 추가해야 합니다. 이를 위해서는 ActionListener 인터페이스를 구현하는 클래스가 필요합니다. 앞서 언급했듯이 다음 서명과 함께 actionPerformed 메소드를 포함해야 합니다.

public void actionPerformed(ActionEvent event)

버튼을 클릭하면 패널의 배경색을 다음과 같이 설정하려고 합니다. 지정된 색상. 이 색상은 리스너 클래스에 저장됩니다:


class ColorAction implements ActionListener
{
  public ColorAction(Color c)
  {
   backgroundColor = c;
  }
  public void actionPerformed(actionEvent event)
  {
   //set panel background color
   }
   private Color backgroundColor;
}

그런 다음 각 색상에 대한 개체를 구성하고 이러한 개체를 버튼 리스너로 설정합니다.


ColorAction yelloAction = new ColorAction(Color.YELLOW);
ColorAction blueAction = new ColorAction(Color.BLUE);
ColorAction redAction = new ColorAction(Color.RED);

yellowButton.addActionListener(yellowAction);
blueButton.addActionListener(blueAction);
redButton.addActionListener(redAction);

예를 들어, 사용자가 "Yellow" 버튼을 클릭하면 yellowAction 개체의 actionPerformed 메서드가 호출됩니다. 이 개체의 backgroundColor 인스턴스 필드는 Color.YELLOW로 설정됩니다. 이제 패널의 배경색을 노란색으로 설정합니다.

여기서 고려해야 할 또 다른 문제가 있습니다. ColorAction 객체는 버튼 패널 변수에 액세스할 수 없습니다. 이 문제는 두 가지 방법으로 해결될 수 있습니다. 하나는 ColorAction 객체에 패널을 저장하고 이를 ColorAction의 생성자에 설정하는 것이고, 다른 하나는 ColorAction을 ButtonPanel 클래스의 내부 클래스로 만들어 해당 메서드가 자동으로 외부 패널에 액세스할 수 있도록 하는 것입니다.

다음은 ButtonFrame 클래스 내에 ColorAction 클래스를 배치하는 방법을 설명합니다.


아아아아

위 내용은 Java의 버튼 클릭 이벤트 처리 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.