当前位置: 首页 > 知识库问答 >
问题:

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

刘丰羽
2023-03-14

我有一个简单的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个答案

幸经艺
2023-03-14

尝试将if块更新为:

  if (txtString.getText().equals("")) {    
     lblMessage.setText("ERROR-NO Text is given !");
     lblMessage.setForeground(Color.red);
     Thread.currentThread().sleep(5000);
     lblMessage.setText("");
  }
 类似资料:
  • 我正在制作一个单位转换器,遇到了一个问题与JoptionPane.ShowMessageDialog代码是完整的,应该运行良好。 如果将两个转换单元都放到同一个单元,转换器将显示一个消息对话框。当消息窗口弹出,它说消息,然后一个确定按钮点击。当我单击Ok按钮时,它不会退出消息对话框。我从这个转换器的另一个更长的版本中为它复制了代码行,它可以很好地使用它。另外,如果你对如何做更好的数学有任何建议,请

  • 在本章中,我们将讨论在使用SLF4J时获得的各种错误消息或警告以及这些消息的原因/含义。 无法加载类“org.slf4j.impl.StaticLoggerBinder”。 这是在类路径中没有提供SLF4J绑定时引起的警告。 以下是完整的警告 - 要解决此问题,需要添加任一日志框架绑定。本教程上一小节对此进行了解释说明。 注 - 这种情况发生在SLF4J的版本中,介于1.6.0和1.8.0-bet

  • 问题内容: 这是我的代码片段: 这应该给我一个错误,因为这些表甚至不存在。但是我得到的是: 数组([0] => 00000) 如何获得对该错误的更好描述,以便可以调试问题? 问题答案: 尝试以下方法: 在准备之前添加以下内容: 这将更改PDO错误报告类型,并在出现PDO错误时使其发出警告。尽管应该设置您的errorInfo,但它应该可以帮助您进行跟踪。

  • 我正在使用Eclipse将json隐藏到Java中的字符串中。但我一直收到: 有人能告诉我json有什么问题吗?我如何改变它使其有效?我对java和json相当陌生,如果我错过了任何应该包括的细节,我很抱歉。

  • 我有一个基本的SQS队列,它使用redrive策略触发Lambda,在5次重试后将失败的消息发送到DLQ。我读到Lambda应该在消息中添加关于错误的消息属性 除了在DLQ中查看消息时,我没有看到任何来自Lambda的ErrorCode、ErrorMessage属性外,其他一切都正常工作。有人用这个吗?

  • 问题内容: 假设我像这样在golang中创建了一个新错误 在Java中,我习惯于获取消息的异常。如果返回,我将如何比较该错误? 在golang中如何进行? 问题答案: 声明包级别变量,并显示以下错误: 返回错误时使用此值。与此值进行比较以检查特定的错误: 如果程序包外部的代码需要访问错误,则导出变量: 像这样使用它: 这里有一些例子。 避免与错误的Error()方法返回的字符串进行比较。它会使您的