Я немного новичок в Java, и я столкнулся с ошибкой, пытающейся добавить активного слушателя к кнопке в моем графическом интерфейсе. Это довольно простой графический интерфейс, если не бит. Прямо сейчас есть только метка, кнопка и область текста. То, что я пытаюсь сделать на самом деле, - это щелчок на кнопке, чтобы он вносил данные из текстовой области и менял метку, чтобы ответить на нее. Это очень простая идея ... но для новичков это было очень досадно. Я в основном самоучка, и всякий раз, когда я пытаюсь добавить активного слушателя, у меня возникают обширные проблемы.Добавление прослушивателя действий в JButton
Я полагаю, что все мои попытки добавления активного слушателя слишком не оправдались, поэтому я вытащил свои попытки. Этот код - это просто графический интерфейс. Ничего не происходит, кроме того, что он инициирует код. Мой вопрос: как бы добавить активного слушателя и код ответа?
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();
}
}
Спасибо! Я попробовал почти этот точный код раньше (у меня не было output.setText (input.getText()), просто чтобы он изменил метку в качестве теста), но я отсутствовал @Override. Я очень ценю это: до сих пор у меня было две программы, графический интерфейс и программа без интерфейса (вместо этого используйте сканер и println). Я очень ценю помощь – Prometheus
Добро пожаловать !!! Кстати, '@ Override' не является обязательным. Он инструктирует компилятор, что вы намерены переопределить метод в суперклассе. Более подробную информацию вы найдете на странице https://docs.oracle.com/javase/tutorial/java/IandI/override.html. – shan1024