2012-03-17 35 views
1

我试图使用Swing组件重新创建Skype句柄即时消息。我正在使用带有自定义ListCellRenderer的JList来呈现列表中的每个单元格。 ListCellRenderer扩展了一个JPanel,JPanel只包含一个标签(我将放置用户名)和一个JTextArea,这是用户消息的去向。 JTextArea是我遇到的问题。尝试使用Swing重新创建Skype对话面板

这里是什么,我有一个瞬间的图像 -

  • 伊夫除去能够自动随附在NetBeans textarea的滚动窗格。
  • 我在此图像中显示导航器,设计视图和实际程序(列表中有两个元素)。

enter image description here

  1. 中textarea的文字实际上比这个形象在更长的时间,但它不是自动换行。我已经在此textarea的属性框中将lineWrap和wrapStyleWord设置为true,但它似乎没有任何效果。然后我尝试使用属性框来设置最大大小,并且它也没有任何影响。

  2. 有没有什么办法可以用netbeans gui designer来控制组件周围的填充/边距。它给我的元件间距自动放置是几个像素太小或两个大。我需要列表的单元格组件上的确切位置。

仅供参考这里是如何Skype的convesation面板外观(红色“布赖恩CS”香港专业教育学院补充的是,多数民众赞成如何,我会在我的程序做的话)。正如你可以看到句子换行一样,单元之间有适当的空间。那么任何人都知道如何使用Swing来实现这一点?

enter image description here

+0

你试过setLineWrap(true); ? – Java42 2012-03-17 22:56:00

+1

我会使用JTable与自定义渲染器,而不是JList。 – 2012-03-17 23:04:20

+1

我也考虑使用标记。 JLabel将接受HTML并强制linewrap。就像 - > setText(“”+ text +“”)它也使得它更容易造型(我不记得Skype是否有丰富的文本),并且在组件上设置最小/最大/首选大小。这将有助于强制布局,如果你准备进行渲染,JTable将更容易处理,在任何长时间的对话中,你都会想要渲染时进行优化。 – 2012-03-18 00:51:43

回答

0

的JTextArea是没有问题的。 JList为每一行设置heigth。请参阅JList.setFixedCellHeigth或setPrototypeCellValue

相关问题