1

我正在构建一个带有一个 JTextArea 的 ATM 模拟器,它将显示与用户的所有交互。我希望用户输入 pin 并在欢迎消息下方的 JtextArea 星号中显示他。在我的代码中将它们作为实数读取时如何显示星号,以便我可以验证我的用户?我还希望 JTextArea 在用户从一个步骤到下一个步骤时使用不同的文本动态更新。例如,它会覆盖用于输入 pin 的文本以及关于撤回等的文本。它将继续这样做,用户将看到屏幕更新相关信息。欢迎任何有关我如何操作 JtextArea 的资源或帮助,或者如果有人可以提出更好的方法来实现这一点。

4

2 回答 2

2

如果您尝试使用 JTextArea,就好像它是一个控制台,它与用户逐行交互,并且不显示 PIN 号,它可能会有点棘手。一种可能的解决方案是在 JTextArea 的 Document 上使用 DocumentFilter(首先转换为 PlainDocument)并传递所有输入的文本,除非您的程序处于 PIN 获取模式(也许您将为此设置一个布尔变量),并且在这种情况下,您将输入的文本保存到程序本身,但仅通过 DocumentFilter 显示“*”。这可能是矫枉过正,但它可以工作。

于 2012-05-04T01:09:59.897 回答
2

JPasswordField我认为您可能需要一个实例。

对于放置星号,

passwordField.setEchoChar('*');

并恢复 PIN:

char[] pin = passwordField.getPassword();

使用这种方法,您需要一些其他组件,例如JLabel向用户显示信息,欢迎消息。

于 2012-05-04T01:10:55.097 回答