在GUI中使我的错误消息消失

时间:2013-05-13 16:49:08

标签: java swing file-io event-dispatch-thread

我有这个简单的GUI,要求输入一个字符串,然后将其写入文本文件,但如果没有给出输入,JLabel会显示错误消息,我希望该错误消息保持5秒

    import java.awt.Color;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileWriter;
    import java.io.IOException;
    import javax.swing.*;    
    import javax.swing.JFrame;    
    import net.miginfocom.swing.MigLayout;

    public class Q1 extends JFrame {

    private JLabel lblString, lblMessage;
    private JTextField txtString;
    private JButton btnStore;
    private JPanel thePanel;

    public static void main(String[] args) {    
        new Q1();    
    }// End of main

    public Q1() {

        super("Store your text");
        this.setSize(600, 100);
        this.setLocationRelativeTo(null);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
        thePanel = new JPanel(new MigLayout());    
        lblString = new JLabel("Enter Your Text :");    
        txtString = new JTextField(50);    
        btnStore = new JButton("Store");
        // Listener for Store Button
        ListenerForButton lForButton = new ListenerForButton();    
        btnStore.addActionListener(lForButton);    
        lblMessage = new JLabel();    
        thePanel.add(lblString);
        thePanel.add(txtString, "wrap");
        thePanel.add(btnStore, "skip,split2");
        thePanel.add(lblMessage, "gapleft 200");    
        this.add(thePanel);    
        this.setResizable(false);
        this.setVisible(true);    
    }// End of constructor

    // Listener implement    
    public class ListenerForButton implements ActionListener {

        public void actionPerformed(ActionEvent e) {

            if (e.getSource() == btnStore) {    
                if (txtString.getText().equals("")) {    
                    lblMessage.setText("ERROR-NO Text is given !");
                    lblMessage.setForeground(Color.red);    
                } else {
                    try {
                        String str = txtString.getText();    
                        File file = new File("appending-Text-File.txt");    
                        // if file doesnt exists, then create it
                        if (!file.exists()) {    
                            file.createNewFile();
                        }    
                        FileWriter fileWritter = new FileWriter(file.getName(),
                                true);    
                        BufferedWriter bufferWritter = new BufferedWriter(
                                fileWritter);    
                        bufferWritter.newLine();// Write a new line
                        bufferWritter.write(str);
                        bufferWritter.close();    
                        lblMessage.setText("String is successfully stored !");    
                        txtString.setText("");    
                    } catch (IOException ex) {    
                        ex.printStackTrace();
                    }
                }
            }
        }// End actionPerfomred
    }    
}// End of Class

1 个答案:

答案 0 :(得分:0)

尝试将if块更新为:

  if (txtString.getText().equals("")) {    
     lblMessage.setText("ERROR-NO Text is given !");
     lblMessage.setForeground(Color.red);
     Thread.currentThread().sleep(5000);
     lblMessage.setText("");
  }