如何在JAVA中的同一空间中添加JLabel和JTextArea
这是我想要制作的UI 我不熟悉UI设计。谁能告诉我应该使用哪种布局?如何使JLabel和JTextArea粘在一起,并使JTextArea中的字符串可单击?有没有更好的方法来实现这个设计。 我尝试过BorderLayout,但似乎无法将JLabel和JTextArea添加到同一个位置如何在JAVA中的同一空间中添加JLabel和JTextArea,java,swing,jpanel,layout-manager,jtextarea,Java,Swing,Jpanel,Layout Manager,Jtextarea,这是我想要制作的UI 我不熟悉UI设计。谁能告诉我应该使用哪种布局?如何使JLabel和JTextArea粘在一起,并使JTextArea中的字符串可单击?有没有更好的方法来实现这个设计。 我尝试过BorderLayout,但似乎无法将JLabel和JTextArea添加到同一个位置 非常感谢。通常,一个复杂的UI将由一系列复合组件和布局组成,每个组件和布局都专注于特定的责任领域。这使生活变得更加轻松,因为您只关注一个小区域,而不必担心它会如何影响不相关的元素 话虽如此,我想你真正想要的是一个
非常感谢。通常,一个复杂的UI将由一系列复合组件和布局组成,每个组件和布局都专注于特定的责任领域。这使生活变得更加轻松,因为您只关注一个小区域,而不必担心它会如何影响不相关的元素 话虽如此,我想你真正想要的是一个
标题边框
,例如
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);
这将大大简化布局,因为您只需要布局包装器
面板,而不需要布局标签和相关组件
这里的缺点是您确实丢失了JLabel
可以提供的键盘快捷键功能,但是您可以使用相同的想法(包装组件)将JLabel
和相关组件包装到易于使用的包中
根据您选择的路线,我会看到GridBagLayout
和可能的BorderLayout
和FlowLayout
发挥作用
有关详细信息,请参阅和
JTextArea中的字符串可单击
这充其量也相当复杂。如果你的意思是像一个超链接,那么我建议你对一个JEditorPane
做一些研究,这会使它(稍微)更容易
类似于的内容我们可以查看您的代码吗?我不知道你说的是画面的哪一部分。你是说最顶层吗?“有人能告诉我应该使用哪种布局吗?”GUI很少只使用一种布局。通常,我们“分而治之”一个GUI——使用最适合每个部分的任何布局。话虽如此,我可能会使用一个
GridBagLayout
作为GUI。我主要看到GridBagLayout
,但我想你真正想知道的是,如何使用titleBorder
,有关更多详细信息,请参阅我在这里看到的问题不止一个。非常感谢你的评论。在我的示例中,在类边界下有5个类名称,如果我单击一个类名,它会在属性边界中显示Attributes的名称?假设属性名称已经在字符串[]中。对于每个textArea,我必须创建一个具有标题border的特定JPanel来包含它?它将提供最佳外观,因为否则您将修改滚动窗格的边框,这可能看起来很奇怪。似乎我应该使用JList而不是JTextArea,所以我必须先设置面板大小,然后动态添加JList?