【问题标题】:How to make JTextField text visible?如何使 JTextField 文本可见?
【发布时间】:2012-10-08 06:56:27
【问题描述】:

我的目标是在 JTextField 中编写用户可见的内容,并在控制台中显示此文本。 截至目前,JTextField 正在接受文本,但没有显示。没有光标,没有文字。

我尝试过使用 textfield.setEditable(true)、textfield.setEnable(true) 和不同的前景色和背景色,但没有任何反应。

奇怪的是,我可以使用 textField.setText("Random text") 并显示它,但我无法在程序运行时删除或编辑它,并且它不包含在 getText() 的输出中。

这是程序:

import acm.program.*;

import java.awt.Color;
import java.awt.event.*;
import javax.swing.*;

@SuppressWarnings("serial")
public class TextFieldTest extends ConsoleProgram implements SomeConstants {

public void init() {
    setSize(APPLICATION_WIDTH, APPLICATION_HEIGHT);

    textField = new JTextField(20);
    add(textField, SOUTH);
    textField.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
    if (e.getSource() == textField)
        println("Hi, " + textField.getText());
}

private JTextField textField;
}

【问题讨论】:

  • 你能评论一下actionPerformed的整个逻辑,然后再试一次。
  • 已将其注释掉 - 当我尝试在 Jtextfield 中写入时没有任何显示。我尝试注释掉addlistener,不同组合的逻辑和方法。
  • 如果我创建一个 JFrame 并添加 JTextField 它工作正常,所以我想这与我使用 acm (consoleprogram) 的事实有关?

标签: java swing jtextfield visible


【解决方案1】:

如果您使用的是acm.program.ConsoleProgram,您可能需要按照here 的建议使用Java SE 5(1.5 版)。

附录:作为@Tor cmets,java.awt.TextField 在更高版本的JRE 下可能是可以接受的。

【讨论】:

  • 好的,谢谢。我正在使用jre1.6。最后使用普通的 TextField 代替,它可以正常工作。
猜你喜欢
  • 2017-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多