我正在编写一个简单的服务器聊天客户端,使用 gui 来制作聊天框等等。我只是想知道如果有人想写长消息,我是否应该使用 jtextarea 而不是 jtextfield,因为 jtextfield 不允许自动换行。
如果我使用 jtextfield 的 jtextarea 或者是否有特定的理由不使用 jtextarea 作为我的输入框,这有关系吗?
我正在编写一个简单的服务器聊天客户端,使用 gui 来制作聊天框等等。我只是想知道如果有人想写长消息,我是否应该使用 jtextarea 而不是 jtextfield,因为 jtextfield 不允许自动换行。
如果我使用 jtextfield 的 jtextarea 或者是否有特定的理由不使用 jtextarea 作为我的输入框,这有关系吗?
我猜:
JTextField 更容易使用。您可以向其添加一个 ActionListener ,以便当用户点击 Enter 时可以调用 Action 并发送消息。当然,您仍然可以拥有“发送”JButton。用户也可以点击。
使用 JTextArea,Enter 键将添加一个新行,因此您希望用户能够在使用 Enter 时发送文本,您将需要自定义处理,也许通过使用键绑定。我更喜欢文本区域,因为我希望看到尽可能多的文本,就像我现在在回答这个问题时所做的那样。
从 oracle 文档和个人经验来看,JTextField 使生活变得更加轻松,因为默认设置了 ActionEventListener,因此在字段中设置的操作(字符或文本)被复制到 JTextArea,这就像在字段中执行的活动日志.
所以球在你的球场上。您可以将 JTextField 与 JTextArea 或 JTextArea 单独一起使用,并编写侦听器类以满足您的目的,并确定添加一个可侦听的事件,例如按钮。
此外,始终指定字段的大小以避免可能影响应用程序 Ui 的布局问题,因为如果未正确指定大小,则始终存在动态调整大小。