1

我正在编写一个简单的服务器聊天客户端,使用 gui 来制作聊天框等等。我只是想知道如果有人想写长消息,我是否应该使用 jtextarea 而不是 jtextfield,因为 jtextfield 不允许自动换行。

如果我使用 jtextfield 的 jtextarea 或者是否有特定的理由不使用 jtextarea 作为我的输入框,这有关系吗?

4

3 回答 3

2

我猜:

  • 您可能需要 JTextFieldJTextArea(或其他多行文本组件)。
  • JTextField 将供用户输入他们要发送的聊天消息。这将是可编辑的。
  • JTextArea 将显示传入的聊天以及用户发送的聊天。它是不可编辑的。
  • 考虑将 JTextArea 放在 JScrollPane 中
  • 考虑将两者放置在使用 BorderLayout 的容器中,其中 JScrollPane 将 JTextArea 放置在 CENTER 位置,将 JTextField 放置在 SOUTH 位置。
于 2013-04-24T18:19:46.923 回答
1

JTextField 更容易使用。您可以向其添加一个 ActionListener ,以便当用户点击 Enter 时可以调用 Action 并发送消息。当然,您仍然可以拥有“发送”JButton。用户也可以点击。

使用 JTextArea,Enter 键将添加一个新行,因此您希望用户能够在使用 Enter 时发送文本,您将需要自定义处理,也许通过使用键绑定。我更喜欢文本区域,因为我希望看到尽可能多的文本,就像我现在在回答这个问题时所做的那样。

于 2013-04-24T18:31:33.293 回答
1

从 oracle 文档和个人经验来看,JTextField 使生活变得更加轻松,因为默认设置了 ActionEventListener,因此在字段中设置的操作(字符或文本)被复制到 JTextArea,这就像在字段中执行的活动日志.

所以球在你的球场上。您可以将 JTextField 与 JTextArea 或 JTextArea 单独一起使用,并编写侦听器类以满足您的目的,并确定添加一个可侦听的事件,例如按钮。

此外,始终指定字段的大小以避免可能影响应用程序 Ui 的布局问题,因为如果未正确指定大小,则始终存在动态调整大小。

于 2016-01-05T22:39:01.047 回答