问题标签 [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.

0 投票
4 回答
99768 浏览

java - 分配布局时出错:无法共享 BoxLayout

我有这个 JavaJFrame类,我想在其中使用 boxlayout,但我收到一条错误消息java.awt.AWTError: BoxLayout can't be shared。我见过其他人有这个问题,但他们通过在内容窗格上创建 boxlayout 来解决它,但这就是我在这里所做的。这是我的代码:

0 投票
5 回答
18219 浏览

java - 请帮助我理解 BoxLayout 对齐问题

我正在尝试使用 Java 布局创建一个非常简单的窗口。我要安排三个元素:按钮、进度条和标签。按钮必须垂直居中,进度条必须全宽,标签必须左对齐。

下面是一些代码(假设pane是JFrame的内容窗格,并且之前已经创建了按钮、progressBar和label):

当我测试应用程序时,我看到所有东西都错位并搞砸了:按钮和标签是随机缩进的,如果我调整窗口大小,缩进量会以一种奇怪的方式发生变化。进度条看起来不错(全宽)。

我只是不明白发生了什么。你能给我一个线索吗?

0 投票
1 回答
1300 浏览

netbeans - Netbeans JLabel 锚压倒了我的布局管理器

我知道这已经被问了很多,并且以各种方式,我已经尝试过,但没有成功。我正在使用 netbeans 和 swing 来创建我的 GUI。

我在 JPanel 中有一个 Jlabel。当我将标签放在面板内时,它会自动将其锚定到最近的组件,这不是我想要的。我想使组件居中,无论大小。

但是,在 GUI 编辑器的“代码”部分创建自定义 JPanel 以制作 BoxLayout 和 GridBagLayout 似乎不起作用。似乎无论如何,它仍然锚定。你可以在我的编辑器中看到它在做什么的附件 jpg。在此处输入图像描述

有人有什么想法吗?

如前所述,我试图更改 JPanel 的“自定义创建代码”来执行以下操作: new javax.swing.JPanel(new GridBagLayout());

然后删除了我的 JLabel 的父标签并将“创建后代码”添加为:statusPanel.add(versionLabel,new GridBagConstraints());

我还尝试输入 GridBagConstraints 来表示居中。

0 投票
1 回答
165 浏览

cocoa - 可可中的 BoxLayout

最初,我想问如何以编程方式使用可可创建用户界面,即不使用界面构建器。但似乎其他人已经问过这个问题并且答案对我没有帮助。

所以我会问一个不同的问题,我希望能间接帮助我回答上一个问题。这里是:

(QUESTION_START)

如何创建一个功能与Java中的BoxLayout 类等效的 Objective C 类?(只需单击链接,该页面上的图像说明了您需要了解的有关 BoxLayout 的所有信息。)

(QUESTION_END)

任何正确方向的帮助将不胜感激!

有一些与问题相关的子任务,例如

“我如何询问用户界面元素(例如按钮)它想要多大”(在它被绘制到屏幕之前)。要在屏幕上绘制它,您必须已经知道它的大小,不是吗?显然,界面构建器应用程序已经找到了一种方法来做到这一点。

我知道许多 Cocoa 开发人员甚至认为尝试我想做的事情是一个愚蠢的想法。让我告诉你:我知道这种观点背后的原因。现在,在没有界面构建器的情况下布局控件很糟糕,因为在可可中没有任何东西可以接近布局管理器。但是,如果您认为我的问题很愚蠢,请不要回答。整个互联网都在解释为什么你永远不想用 cocoa 中的代码创建 UI。

谢谢!

0 投票
1 回答
1054 浏览

java - Java:jsplitpane 和 boxlayout 的问题

我想摆脱jsplitpanes左侧的空白空间:

截屏

这是我的代码:

0 投票
3 回答
3772 浏览

java - Swing BoxLayout 问题 - 无法让 Fillers 完成工作

我想要做什么

在 Swing 中,我尝试使用BoxLayout或等效的线性容器,但容器中的项目垂直拉伸。在我的应用程序中,我不希望它们垂直拉伸。

我知道我可以在组件上设置一个 preferredSize 或 maximumSize,但是下面的代码只是一个复制器,我不能硬编码或最大化组件的大小,这些组件实际上更复杂和动态。而且我不能将 aBorderLayout与该BorderLayout.TOP位置一起使用,因为如果我这样做,将不会显示任何滚动条。我可能需要滚动窗格。


我试过的

因此,我尝试按照Using Invisible Components as Filler中的说明使用fillersin a ,但它不起作用。尽管在 Oracle 文档中,它似乎正是我所需要的。这是我的尝试:BoxLayout

这是我得到的结果:

填充物不起作用


第二次尝试

我尝试使用Box类而不是JPanelwith BoxLayout,但视觉结果完全相同。这是我的第二次尝试:


我想做什么

有谁知道我如何修复这些填充物并使它们起作用?对给定代码的修复会很棒。

这是我用颜料画的一幅画,它显示了我想要的结果: 预期结果

0 投票
2 回答
1035 浏览

java - 我无法让 BoxLayout 的 setPreferredSize() 方法按我想要的方式工作

我想我解决了我的问题,但我不知道为什么会这样,所以我希望有人能向我解释一下,这样我以后就不会再犯同样的错误了。

这是一个简单的示例,可以编译我正在尝试做的事情:

起初,我遇到了包含 JLabel 的面板没有像使用首选大小那样调整大小的问题。我发现这是因为我使用 mainPanel.getSize() 的一些变体作为子面板的首选尺寸。在这个例子中,我使用了实际的数值,这很有效。

它不能以旧方式工作的原因(这实际上是我希望有人解释的事情),这就是为什么,如 SOP 行中所见, mainPanel.getSize() 返回宽度和高度为 0 而它显然占据了整个屏幕,即 400x300。

感谢@camickr 告诉我不应该为我的面板设置首选大小,这有助于我找出问题出在哪里。

0 投票
4 回答
1740 浏览

java - BoxLayout 中的 NullPointerException

有人知道我如何开始在 Java Swing 中调试此错误吗?

它在BoxLayout(line size = ...)中从这个方法中抛出

0 投票
2 回答
1185 浏览

java - 从 BoxLayout 中移除时组件不移动

我正在使用 BoxLayout 并从中动态删除组件,如下所示:

但是,这样做时,即使相关标签已从布局中删除,其他组件也不会向上移动以覆盖其空间,直到我调整框架大小。我在移除组件后尝试重新绘制框架,但没有运气 - 标签不再显示,但仍然存在以前的差距。

除了每次移除组件时自动调整窗口大小的明显可怕的问题之外,我如何获得所需的行为?

0 投票
1 回答
609 浏览

height - 具有动态文本长度并在 BoxLayout 中包装错误高度的 JTextarea

我正在尝试在垂直 BoxLayout 中使用多行标签和图像标签。对于多行标签,我使用带有 setEditable(false) 的 JTextArea。对于图像标签,我使用 JLabel([ImageIcon])。

以下代码显示 textarea 下面有很多空间,我不希望这样。为了简单起见,我添加了文本标签而不是图像标签。

我想要的是从上到下堆叠文本区域和标签。在每个 textarea 之后,标签应该紧跟在下面,在最后一个标签之后,到窗口底部应该有空白空间。

也许另一个布局管理器更好,但我认为这是一个 JTextArea 问题。任何解决方案都会有所帮助。

谢谢。

这是可编译的代码: