我正在开发一款带有聊天框的游戏,但尽管进行了研究(我可能没有寻找正确的东西),我无法找出创建自定义“滚动”的最佳方法 Pane ”用于在图形上绘制“文本框”。这种可怕的绘画表现形式展示了我想要实现的目标:
如果我可以提供更多相关信息,请询问。这是我能弄清楚如何解释它的最好方法。
编辑:好的,为了提供更多信息,游戏使用 JPanel 来显示游戏。这是通过覆盖 JPanel 中的 PaintComponent 来完成的。我不确定是否可以添加一个新组件来绘制它。如果是的话,那么这可能会起作用。我只需要能够将其放置在特定位置即可。如果添加一个新组件可以起作用,那么它就可以起作用,而我感觉自己像个白痴。
最佳答案
选项 1) 使用 JScrollPane 中保存的 JTextArea。选项 2) 使用 JScrollPane 中保存的 JList。 JTextArea 稍微简单一些,但 JList 工作得更好,并且在需要保存大量数据时响应速度更快。教程可以在这里找到:
请注意,在快速浏览 Swing 教程后,您可能很快就能回答这个问题,因此为了将来引用,我添加了指向它们的链接。
<小时/>编辑
请考虑以下选项以获得更好的解决方案:
- 请记住,您的 GUI 可以使用多个 JPanel,而且事实上可以而且经常会使用许多。
- 仅使用绘图 JPanel 进行绘图,仅此而已。
- 换句话说,不要让它容纳任何其他组件。
- 将其 BorderLayout.CENTER 放置在另一个使用 BorderLayout 的 JPanel 中。
- 将其他非图形控制结构放置在 JPanel 中,这些结构由上述使用相同 BorderLayout 的 JPanel 保存。这样,您的控件结构(例如 JScrollPane)就会显示在 GUI 中,但不会覆盖并覆盖绘图 JPanel。
- 将使用主 JPanel 的 BorderLayout 添加到顶级窗口中,或者如果需要更复杂的 GUI,则在另一个 JPanel 中添加。
- 您将希望这些子 JPanel 使用它们自己的布局,以便整个 GUI 具有易于更改和增强的令人愉悦的外观。
关于Java 图形对象和滚动 - 最简单的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24983411/