簡體   English   中英

將動作偵聽器添加到JButton

[英]Adding an action listener to JButton

我對Java的新手有點了解,但是在嘗試向GUI中的按鈕添加活動的偵聽器時遇到錯誤。 這是一個相當簡單的GUI,即使有點混亂。 現在,只有標簽,按鈕和文本區域。 我正在嘗試做的是在按鈕上單擊以使其從文本區域中輸入內容,並更改標簽以對其進行響應。 這是一個非常簡單的主意...但是對於一個新來的人來說,這非常令人討厭。 我主要是自學成才,每當嘗試添加積極的傾聽者時,我都會遇到很多問題。

我以為我添加活動監聽器的所有嘗試都以失敗告終,所以我放棄了嘗試。 這段代碼就是GUI。 除了啟動代碼之外,什么都沒有發生。 我的問題是:如何添加活動的偵聽器和響應代碼?

import java.awt.Color;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class IgnisTest extends JFrame {
   JPanel pnlButton = new JPanel();     
   JButton say = new JButton("Say");
   JLabel output = new JLabel("This is a test");    
   JTextField input = new JTextField();


   public IgnisTest() {       
       pnlButton.setBackground(Color.black);
       say.setPreferredSize( new Dimension( 100, 25) );
       input.setPreferredSize( new Dimension(100, 25) );
       pnlButton.add(say);
       pnlButton.add(input);

       JPanel pnlWrapper = new JPanel(new GridBagLayout()); 
       pnlWrapper.setBackground(Color.black);
       GridBagConstraints constraints = new GridBagConstraints(); 
       pnlWrapper.add(pnlButton, constraints); 

       JPanel pnlLeft = new JPanel();
       pnlLeft.setBackground(Color.black); 
       add(pnlWrapper, BorderLayout.SOUTH); 
       add(pnlLeft, BorderLayout.CENTER); 
       pnlLeft.add(output);

       output.setForeground(Color.white);
       setSize(400, 600);
       setTitle("Ignis");
       setLocationRelativeTo(null);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
       setVisible(true);
  }

  public static void main(String[] args) {
       new IgnisTest();
  }    
}

最簡單的方法是使用像這樣的匿名類。

say.addActionListener(new ActionListener() {

   @Override
   public void actionPerformed(ActionEvent e) {
       output.setText(input.getText());
   }
});

您可以在https://docs.oracle.com/javase/tutorial/java/javaOO/anonymousclasses.html上找到有關匿名類的更多詳細信息。

使用anonumousinnerclass或實現ActionListener來添加actionListener

say.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println(input.getText());
               //do your logic 
            }
        });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM