当前位置: 首页 > 面试题库 >

使用setText清除TextField的内容在AWT中不起作用

商畅
2023-03-14
问题内容

TextField在使用setText()方法清除AWT中的内容时遇到问题。显然,按“重置”按钮后setText("")不会清除的内容TextField。这是我的程序:

import java.awt.*;
import java.awt.event.*;

public class form extends Frame
{

    Label lbl = new Label("Name:");
    TextField tf = new TextField();
    Button btn = new Button("Reset");

    public form()
    {
        tf.setColumns(20);

        addWindowListener(new WindowAdapter()
        {
            public void windowClosing(WindowEvent e)
            {
                System.exit(0);
            }
        });


        btn.addActionListener(new ActionListener() 
        {
            public void actionPerformed(ActionEvent e) 
            {
               tf.setText("");  //Problem occurs here. This does not clear the contents of the text field on pressing the 'Reset' button.

            }
        });


        add(lbl);
        add(tf);
        add(btn);

        setLayout(new FlowLayout());
        setSize(400,100);
        setVisible(true);
        setTitle("Form");

    }


    public static void main(String[] args) 
    {
        new form();
    }

}

有人可以告诉我哪里出了问题或建议替代方法吗?谢谢。


问题答案:

我也使用Java 8u11看到了问题。我似乎还记得这是一个已知的错误,但是我现在似乎找不到。

一个对我有用的解决方案是添加一个中间步骤:

public void actionPerformed(ActionEvent e) {
   tf.setText(" ");  
   tf.setText("");
}

我不确定为什么这样做是必要的,我认为这是setText()函数的一个错误,该函数专门忽略了空字符串。如果有人发现了已提交的错误,那里将会有更多信息。



 类似资料:
  • 我无法设置TextField的文本。没有错误,但Textfield仍然为空。程序的其余部分正在工作,方法被调用,system.out.println(...)打印正确的文本。所以问题是,不能设置textfield的文本。即使我只是写textfield.settext(“0”);textfield仍然为空。当我在public void initialize(...)下为textfield设置文本时也

  • 问题内容: 我正在尝试清除我在Java中制作的文件的内容。该文件是通过PrintWriter调用创建的。我在这里读到可以使用RandomAccessFile这样做,而在其他地方读到,实际上它比调用一个新的PrintWriter并立即关闭以用空白文件覆盖该文件更好。 但是,使用RandomAccessFile不起作用,并且我不明白为什么。这是我的代码的基本轮廓。 运行与上述代码等效的操作,为我的临时

  • 问题内容: 我的CSS文件是: 这是我的HTML代码: 上面的代码在Firefox和Chrome中都可以正常运行。 这在Chrome浏览器中效果很好。但不是在Firefox中。这有什么问题? 问题答案: Firefox 在元素上和/或当源是图像时不支持与Chrome不同的属性。 表示内容图像。如果使用它,它应该有和。 从规格: src属性必须存在,并且必须包含有效的非空URL,该URL可能被引用非

  • 问题内容: 当用户单击我页面上的按钮时,应清除div的内容。我将如何实现这一目标? 问题答案: 只是Javascript(根据要求) 将此功能添加到页面上的某个位置(最好在中) 然后在点击事件上添加按钮: 在JQuery中(供参考) 如果您喜欢JQuery,则可以执行以下操作:

  • 我试图让一个元素向右对齐。我使用了flexbox,因为我发现最容易将文本和任何图标完美对齐。下面的代码片段是我正在做的一个示例。该代码在Firefox和Chrome中运行良好,但在IE中无法使用justify内容。我已经有了“-ms flex pack”,但它没有做任何事情。IE中的内容是左对齐的,而不是右对齐的。

  • 当我键入下面的搜索控件时,会出现一个小“X”,当我单击它时,我的过滤器被清除,我的页面重新呈现。这在铬上很好用。但是,它在Edge 17.17134中不起作用,单击“X”不起作用。我怎么才能让它起作用?