[英]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
以及可能的BorderLayout
和FlowLayout
发挥作用。
JTextArea中的字符串可单击
充其量是很复杂的。 如果您想像一个超链接,那么我建议您对JEditorPane
进行一些研究,这将使它(某种程度上)更容易
像这样的东西
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.