我正在尝试使用 Swing 组件重新创建 Skype 处理即时消息。我使用 JList 和自定义 ListCellRenderer 来渲染列表中的每个单元格。 ListCellRenderer 扩展了 JPanel,JPanel 仅包含一个标签(我将在其中放置用户名)和一个 JTextArea(用户消息将在其中放置)。 JTextArea 是我遇到的问题。
这是我当时的情景 -
- 我已经删除了 netbeans 中文本区域自动附带的滚动 Pane 。
- 我在此图片中显示了导航器、设计 View 和实际程序(列表有两个元素)。
textarea 中的文本实际上比该图像中的文本长得多,但它不是自动换行。我已在该文本区域的属性框中将 lineWrap 和 wrapStyleWord 设置为 true,但它似乎没有任何效果。然后我尝试使用属性框设置最大大小,但这也没有任何效果。
是否有任何方法可以使用 netbeans gui 设计器来控制组件周围的填充/边距。它为我提供的组件之间间距的自动放置要么太小几个像素,要么太大两个像素。我需要在列表的单元格组件上精确放置。
这里供引用的是 Skype 的对话面板的外观(我添加了红色的“Brian cs”,因为这就是我将在程序中执行此操作的方式)。正如您所看到的,句子换行并且单元格之间有适当的空间。那么有人知道如何使用 Swing 来实现这一点吗?
最佳答案
JTextarea 不是问题。 JList 设置每行的高度。请参阅 JList.setFixedCellHeigth 或 setPrototypeCellValue
关于java - 尝试使用 Swing 重新创建 Skype 对话面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9754471/