繁体   English   中英

我如何在JAVA的同一空间中添加JLabel和JTextArea

[英]How can i add JLabel and JTextArea in the same space in JAVA

这是我要制作的UI。

我是UI设计的新手。 谁能告诉我应该使用哪种布局? 如何使JLabel和JTextArea粘在一起并使JTextArea中的String可单击? 是否有更好的方法来实现此设计。 我已经尝试过BorderLayout,但是似乎无法将JLabel和JTextArea一起添加到同一位置。

非常感谢。

通常,一个复杂的UI将由一系列复合组件和布局组成,每个组件和布局都专注于特定的职责范围。 这使生活变得更加轻松,因为您专注于一小块区域,而不必担心它会如何影响无关的元素。

话虽如此,我认为您真正想要的是TitledBorder ,例如...

边界

JTextArea ta = new JTextArea(20, 20);
JScrollPane sp = new JScrollPane(ta);
JPanel wrapper = new JPanel(new BorderLayout());
wrapper.setBorder(new TitledBorder("Details"));
wrapper.add(sp);

这将大大简化您的布局,因为您只需要布局wrapper面板而不是标签AND关联组件。

这样做的缺点是您确实失去了JLabel可以提供的键盘快捷键功能,但是您可以使用相同的想法(包装器组件)将JLabel和关联的组件包装到易于使用的程序包中。

根据您选择的路线,我会看到GridBagLayout以及可能的BorderLayoutFlowLayout发挥作用。

有关更多详细信息,请参见在容器中布置组件如何使用边框

JTextArea中的字符串可单击

充其量是很复杂的。 如果您想像一个超链接,那么我建议您对JEditorPane进行一些研究,这将使它(某种程度上)更容易

这样的东西

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM