Java GUI 布局问题

Posted

技术标签:

【中文标题】Java GUI 布局问题【英文标题】:Java GUI layout questions 【发布时间】:2014-02-20 18:21:16 【问题描述】:

很抱歉,如果之前已发布过此内容,但我似乎找不到任何对我有帮助的好信息,或者我刚开始编写 GUIS 时,其他答案不足以帮助我。

我编写了一个程序,它在自己的(子)Jpanel(jtextfields.combobox、按钮等)中具有各种项目,并且在 jframe 内的主 jpanel 中具有所有子 Jpanel。我的目标是将每个子 JPanel 居中并堆叠在一起,这样当用户调整窗口大小时,每个项目都保持居中并堆叠在一起。 (当我堆叠时,我并不是说一个窗格在另一个窗格之前​​分层,而是像三明治一样堆叠窗格)我的窗格只是按照默认的流程布局移动,我希望停止这种情况。

我见过 BoxLayout,但就像我说的,我是 GUIS 新手,我不确定是否可以将 BoxLayout 应用到 Jpanels。

【问题讨论】:

你的意思是,JPanel,对吧?是的,您可以设置任何ContainerLayoutManager woops ;P 是的,我的意思是 JPanel 【参考方案1】:

首先,您指的是 JPanel,而不是 JPane

其次,

JPanel panel = new JPanel(new BorderLayout());

BorderLayout 可能是您最好的选择。有关布局的更多信息,请查看

http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html#choosing

顺便说一句,NetBeans GUI Builder 可能是您作为入门级 GUI 程序员最好的朋友。

【讨论】:

哈哈,谢谢,我的意思是 JPanel。我正在研究 JLayeredPane 并没有思考。 为什么 BorderLayout 是他的最佳选择?我建议 BoxLayout 是他正在寻找的。​​span> 因为 BorderLayout.CENTER 效果很好,而且会一直居中,这正是他想要的。如果 BoxLayout 中只有一个组件,那么它的工作原理也是一样的。 您如何将 BoxLayout 应用于 JPanel? Java 文档只有一个将其应用于 JFrame 的示例。 JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));【参考方案2】:

在 Java Swing 或最后一个 JAVAFX 中设计用户界面的方法很简单。在 Swing 中,有一个名为 Swing Windows Builder 的 eclipse 插件,您可以通过拖放轻松构建您的 UI 至于 JAVAFX,有一个不错的免费 IDE,称为 Intelli IDE CE,它还内置了 UI 设计器,称为Oracle JavaFx 场景生成器。选择 JavaFx 并加快您的开发速度。

【讨论】:

以上是关于Java GUI 布局问题的主要内容,如果未能解决你的问题,请参考以下文章

用于固定组件位置和可滚动窗口的 Java GUI 布局

JAVA GUI

Java GUI:将JPanel添加进JScrollPane

JAVA GUI布局管理器

[javaSE] GUI(图形用户界面)

Java基础——GUI编程