我在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();
}
}
答案 0 :(得分:0)
使用anonumousinnerclass或实现ActionListener
添加actionListenersay.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(input.getText());
//do your logic
}
});