【问题标题】:jframe component layoutjframe组件布局
【发布时间】:2010-01-11 17:20:29
【问题描述】:

如何在 JFrame 上指定放置组件(特别是 JLabel)的位置?我创建了一个 JFrame 对象并将一个 JLabel 和一个 JList 添加到框架中,但是这两个对象被放置在彼此之上。我试过使用

label.setBounds(10,10,10,10);
list.setBounds(20,20,100,100);

label.setLocation(10,10);
list.setLocation(10, 50);

这些都不起作用。任何帮助表示赞赏!谢谢。

【问题讨论】:

  • 您能否提供创建JFrameJLabelJList 的代码?

标签: java swing layout


【解决方案1】:

在 Java 中,使用布局管理器来确定组件的放置方式。您可以在此处找到有关布局管理器的更多信息:http://java.sun.com/docs/books/tutorial/uiswing/layout/using.html

如果您确实想使用坐标来放置组件,您可以尝试:

JFrame frame = new JFrame();
frame.setLayout(null);

否则,一个非常好的 Java GUI 编辑器是 NetBeans,它默认使用 GroupLayout。

【讨论】:

  • 将布局管理器设置为 null 是布局组件时使用绝对定位的首选方式。但是 IMO,NetBeans 的 GUI 编辑器真的很痛苦,我发现不使用它更容易。
  • NetBeans UI 编辑器非常出色,现在是最好的免费编辑器之一。了解不同 LayoutManager 的工作方式可能很困难,但最终还是值得的。
【解决方案2】:

Layout Managers 会为你做这件事。

使用默认布局BorderLayout,试试

setLayout(new BorderLayout());
getContentPane().add(yourLabel, BorderLayout.NORTH);
getContentPane().add(yourList, BorderLayout.CENTER);

【讨论】:

    猜你喜欢
    • 2012-09-24
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多