使用JTextField更改简单的横幅动画文本

时间:2015-11-15 05:09:01

标签: java swing animation actionlistener jtextfield

我正在为一个简单的横幅进行任务,该横幅在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());
    }
  }
}

0 个答案:

没有答案