我正在为一个简单的横幅进行任务,该横幅在JPanel上移动,我开始工作,并认为我会添加用户在JTextField中输入消息以更改横幅的能力。的消息。我有问题但是。
我似乎无法弄清楚如何使用JTextField来更改消息变量。我想我需要一个ActionListener,但我所拥有的只是不工作(在你输入JTextField后没有任何反应)。
非常感谢任何正确方向的推动!
public class Banner extends JPanel implements ActionListener {
private int x = 0, y = 100;
private static JTextField messageField;
private String message;
public static void main(String[] args) {
JFrame JF = new JFrame();
Banner firstMessage = new Banner("Type a message in the text field to change the banner");
Banner newMessage = new Banner("");
messageField = new JTextField();
JF.add(firstMessage);
JF.add(messageField, BorderLayout.NORTH);
JF.setSize(800, 400);
//Add banner message
firstMessage.start();
//JF.add(newMessage);
JF.setVisible(true);
JF.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//Banner constructor
public Banner(String m) {
message = m;
x = getSize().width + 300;
}
//Start timer thread
public void start() {
TimerTest timer = new TimerTest(this);
timer.start();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(getBackground());
//set background color red
g.setColor(Color.RED);
g.fillRect(0, 0, getSize().width, getSize().height);
//Move message until end of message reaches the end of screen
if(x > -300) {
x -= 6;
}
else {
x = getSize().width + 10;
}
g.setColor(Color.black);
g.drawString(message, x, y);
}
public void actionPerformed(ActionEvent event){
if(event.getSource() == messageField) {
message = (messageField.getText());
}
}
}