问题标签 [boxlayout]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - BoxLayout 对 strut 的误解
我正在用 Swing 编写一个简单的输入图。我使用 boxLayout 创建一个简单的用户输入 GUI。问题是在所有标签的 JPanel 和 JTextFields 的 JPanel 之间创建水平支柱会导致整个面板向下移动(奇怪)这是整个面板:
没有支柱它看起来像:
使用支柱它看起来像(我知道我在图片编辑方面很烂):
java - 为什么需要用 BoxLayout 调用 setLayout?
大多数布局管理器都有无参数构造函数(也就是说,您可以创建一个带有 的 FlowLayout new FlowLayout ()
、一个带有 的 GridLayout new GridLayout ()
、一个带有 的 GridBagLayoutnew GridBagLayout ()
等)。但是,BoxLayout
这要求您同时传递它将管理的容器和组件应沿其布置的轴。
我的问题是:既然您已经告诉布局管理器要布局哪个组件,为什么还需要编写
而不仅仅是第一行?
我快速查看了BoxLayout
源代码,发现我使用的构造函数(第 178-185 行)没有调用target.setLayout(this)
或进行任何类似的调用。添加它似乎真的很简单。Swing 库中没有包含它的原因是什么?
如果重要的话,我正在使用
Java 版本 1.7.0
Java(TM) SE 运行时环境(内部版本 1.7.0-b147)
在 Win7Pro 上。
谢谢!
SSCCE:
java - 垂直对齐BoxLayout间距?
当使用垂直对齐的 BoxLayout 时,如何阻止组件随着包含 JFrame 的增长而扩展,从而在底部留下额外的空间?我尝试了不同的布局,但很快就变得一团糟。我还尝试在面板底部添加胶水,但是布局管理器将胶水视为另一个空 JPanel,仍然导致所有组件增长。有什么建议么?
java - 我怎样才能在 Java 中实现这种可扩展的布局?灵活的 BoxLayout 等
我希望能够拥有三个 JPanel p1 p2 和 p3,并让它们像这样布置:
我一直在玩 FlowLayout、BoxLayout 等,但我不确定我是否朝着正确的方向前进。我对Java很陌生,所以如果我很诚实的话,我不知道会发生什么。
我喜欢 BoxLayout 的工作方式,调整面板的大小,但我希望能够给它某种宽度属性。
我没有为此使用视觉设计器,这是我目前的窗口代码:
任何指针表示赞赏!
编辑:感谢 mKorbel,我已经设法让它按我想要的方式工作。右栏的布局与我打算做的不完全一样,但我实际上改变了主意并决定保留其他布局。
编码:
java - 移除组件后将框布局居中
我有一个创建 JButtons 的程序,然后将其添加到带有 BoxLayout 的 JPanel 中,该 BoxLayout 设置为垂直放置它们。有时第一个按钮会被有意从 JPanel 中删除。最初,按钮正确居中,按钮也成功删除。问题是剩下的按钮会分开来填充空间。这不是我想要的,相反,我希望它们沿 y 轴重新居中而不分开。
我有一个扩展 JPanel 的类。在构造函数中创建了 BoxLayout。
创建按钮当前是此类中的一种方法:
而移除是另一种方法:
有谁知道如何使按钮保持沿 y 轴居中而不分散开来填充包含面板?
java - Boxlayout 无法共享 AWTError ...重新更正我之前有 Nullpointerexception 的任务出现此错误..请帮帮我
可能重复:
请帮我解决这个 java.awt.BoxLayout can't be shared 或 NullPointerException
编辑我自己之前发布的帖子后的代码名为:“请帮我整理一下这个java.awt.BoxLayout不能共享或NullPointerException”
如果您也是这篇文章的新手,请查看代码并为我解决:
java - 在 BoxLayout 中对齐 JLabel
几天来我一直在寻找这个问题的答案,但我无法找出问题所在。我想要做的是使顶部 JLabel(称为display
)向右对齐,底部 JLabel(称为notice
)向左对齐。似乎两者都不想这样做。从我读过的内容来看,我所拥有的应该可以工作,但事实并非如此。帮助?
为了清楚起见,我删除了所有 ActionListener 的东西。但这是我无法修复的布局。
c# - C#中的布局管理器
我正在尝试用 C# 设计一个 UI。我来自 Java 背景,熟悉 Java 中的不同布局管理器。
所以我想做的是:
我有一个窗格。在此窗格中,我希望在另一个下方添加控件。在 Java 中,我会使用 BoxLayout(Y 轴),然后添加控件。此外,可以通过为每个单独的容器使用不同的布局来进一步定制单独的控件/容器。
我如何在 C# 中做到这一点?
我需要做的是:
1)在另一个下方添加控件。每个单独的控件都可以是较小控件的集合。
所以我可以拥有的是:
每个控件都可以有自己的布局,比如 X 轴上的 BoxLayout 等等。我该怎么做?
PS:我正在使用WINFORMS。
java - 如何在 BoxLayout 中粘在容器顶部
我有一个带有 Y_AXIS 布局的父 JPanel。这个容器的子容器也是 JPanel。组件堆叠良好,并且全部对齐,但我希望它们粘在父 JPanel 的顶部,因此所有多余的空间都在底部,并且组件之间没有额外的空间。我试过用胶水,但我可能做错了什么。我还将所有孩子的 AllignmentX 和 AllignmentY 分别设置为 left 和 top。
所以,我想要的是父面板中的一堆孩子,它们的高度没有被拉伸,并且粘在父容器的顶部(如果可能的话,左侧),所有多余的空间都放在底部,因此:
编辑:
java - 使用 Boxlayout 导致我的面板只有父面板的一半大小
我使用 JPanel 作为主面板向我的用户显示信息。
我使用方法创建了 3 个其他 Jpanel。标题面板、动词面板、关闭按钮面板。这些方法中的每一个都被分配为一个组件并添加到主面板中。我在主面板和其他面板中使用 BoxLayout。
在其上方是主面板方法。当我编译并运行对话框时,除了verbiagePanel 之外,一切看起来都是正确的。它只有父面板和其他 2 个面板的一半大小。
这是我的 verbiagePanel 的代码
有趣的是,如果我从面板中删除 BoxLayout。面板将扩展以匹配其他 2 个面板。但是标签的间距很疯狂。我最终将在面板中至少有 5 个标签。现在我只展示 2 以使其更简单。