问题标签 [springlayout]

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 投票
2 回答
304 浏览

java - Java Swing:管理多个 SpringLayout

我想管理一个复杂的容器结构作为 SpringLayouts 的组合(一系列独立的 SpringLayout 一个在另一个里面)

特别是,由包含 JPanel 的主 SpringLayout 管理的 JFrame:每个 JPanel 都应由其自己的 SpringLayout 管理。

不幸的是,如果我尝试应用两个不同的 SpringLayout,框架上不会出现任何内容

我制作了这个简单的代码来向您展示问题。代码包含:

  • 一个 JFrame 和它的 SprilgLayout
  • 一个 JPanel 及其 SpringLayout
  • JPanel 中的一个简单的 JButton

这里的代码:

0 投票
0 回答
40 浏览

java - JEdi​​torPane 文本换行是否不适用于 SpringLayout 或者我遗漏了什么?

我需要有选择地格式化段落的一部分,而 JEditorPane 是我能找到的唯一可以为我做这件事的东西。但是当我在编辑器窗格中有一条环绕的行并且在 SpringLayout 中它下方有一个元素绑定时,编辑器窗格不会显示其所有文本:它只显示与没有文本环绕的行一样多的行。如下面的示例所示,您放置在编辑器窗格下方的任何元素都具有正确的间距,如果文本被包裹,并且如果您仔细观察或尝试复制/粘贴内容,您会看到文本就在背景后面.

当你去调整它的大小时,事情真的很有趣。起初看起来调整窗口大小可以解决问题,但后来我注意到了一些事情。如果您一次更改一个像素的窗口大小,当文本换行到新行或停止换行到旧行时,编辑器窗格将保持其旧显示大小。它下面的元素移动到它应该在的位置,但是在您再次调整窗口大小之前,窗格不会正确打印。就像窗格正在重新绘制,然后查看是否需要调整大小的工作在之后完成,但从未显示。所以编辑器窗格总是会落后一步。

0 投票
1 回答
40 浏览

java - SpringLayout 的问题

我已经写了一些代码,但是当我运行它时,id 并没有像我想要的那样工作:它只显示左上角数组中的最后一个元素

结果:

https://i.stack.imgur.com/nQdz4.png

如何将所有元素设置为彼此下的一个(如下所示)?

0 投票
0 回答
83 浏览

java - 在另一个 jpanel 中摆动中心 jpanel

我有一个我无法通过它的问题,问题是我无法将 jpanel 与内容(contentPanel,它具有 SpringLayout)放在另一个具有 GridBagLayout 的 jpanel(LoginPanel,主面板)内(使 contentPanel 居中)。

这就是它的外观,contentPanel 它只是中心的一个点我不知道我错过了什么在此处输入图像描述

这是代码:

我解决了我只需要添加 contentPanel.setPreferredSize(new Dimension(300, 150));

在此处输入图像描述

0 投票
1 回答
24 浏览

java - 从面板数组中对 JButton 发出设置约束

我正在创建一个日历,并为每一天创建一个单独的 JPanel。所有这些面板都放入一个 ArrayList 中。但是,当我尝试使用 SpringLayout 向 JButton 添加约束时,它似乎无法从 ArrayList 调用。

我确实调用了 validate(); 和重绘();

但是我仍然没有运气。

虽然我进行了测试以确保我得到了正确的面板,但我仍然无法移动 JButton。它应该基于代码居中。

在此处输入图像描述

谢谢您的帮助!

0 投票
0 回答
55 浏览

java - SpringLayout 是固定大小的布局管理器吗?

我知道以下 Java Swing 布局管理器:FlowLayoutBoxLayoutBorderLayoutGridLayoutGroupLayout(我避免使用)和GridBagLayout.

我称之为GridBagLayout固定大小的布局管理器,因为它定义了固定大小的行和列。如果我希望我的所有面板都可以调整大小,我不会在响应式应用程序中使用它。我会尝试结合其他一些布局管理器。

出于好奇,我正在考虑采用新的布局管理器,SpringLayout来进行应用程序改造。但是在浏览了文档之后,我的印象SpringLayout也是一个固定大小的布局管理器。那么,是吗?它会损害我的应用程序的响应能力吗?

0 投票
0 回答
42 浏览

java - 如何使用 SpringLayout 相对于窗口大小放置对象

我正在使用 Swing 在 Kotlin 中对此进行编码,但我也可以使用 Java 处理任何答案。

我有一个带有使用 SpringLayout 布局管理器的面板的 JFrame。

我想把屏幕一分为二。我知道还有其他方法可以做到这一点,但我又创建了两个 JPanel。一个在顶部,一个在底部。

我知道如何将它们放在屏幕的顶部和底部,但我希望它们在我更改屏幕尺寸时留在那儿。目前我有这段代码。

screenSize 方法只返回 JFrame 的大小。它仅在该实例中获得大小,因此无论如何它对我不起作用。

我知道使用 Spring,例如,我可以使用 SpringLayout.VERTICAL_CENTER 将对象设置为始终位于屏幕的正中心。这意味着春天能够随着屏幕尺寸的变化实时更新对象的位置。我想要一个更通用的版本,例如,我可以将bottomPanel的y位置设置为屏幕高度/ 2。这将在每次屏幕更改时更新面板的位置,类似于将位置设置为ScreenLayout.VERTICAL_CENTER确实,但向上移动。我还需要使用它来设置面板的大小,因为我希望它们每个都是屏幕宽度/2。我可以随时获取屏幕宽度,但是一旦我将底部面板的位置设置为它,它只会更新时刻,然后它只是继续使用该值。据我所知,Spring 没有屏幕宽度或高度的常量,因此我无法将其插入 putConstraint 方法。我需要一些其他的选择。我已经考虑过一个不断更新它的循环,但这对于这项任务来说效率极低。如果可能的话,我想直接使用 SpringLayout 功能来解决这个问题。

0 投票
0 回答
36 浏览

java - 使用 SpringUtilities 和 SpringLayout 无法将另一个组件(JPanel)添加到 JFrame

panel代码派生自 oracle 文档(https://docs.oracle.com/javase/tutorial/uiswing/layout/spring.html)。我想在同一个框架中添加一个清除按钮,所以我创建了另一个面板:panel1. 现在的情况是paneland panel1,代码只会显示其中一个面板。在运行代码时,我想要panel1panel. 请告诉我如何实现它?和工作SpringLayoutSpringUtilities很好。

弹簧布局

0 投票
0 回答
12 浏览

java - SpringLayout没有填满整个页面

所以,正如标题所说,我希望我的 SplitPane 中的两个 ScrollPanes 填充 ButtonPanel 下的剩余空间。我已经尝试了其他几个 LayoutManager,但是在这些情况下,这个是“最好的”。

我在北部、东部、南部和西部设置了约束,所以我真的不明白为什么不尊重南部约束。

我也会使用一些其他 Layoutmanager,例如 BorderLayout,但这似乎也不起作用,因为 JScrollPane 在调整大小时会增长。

0 投票
3 回答
48 浏览

java - 如何使用SpringLayout垂直排列组件

显然我对 SpringLayout 有一些不明白的地方。我正在尝试创建一个类,即 JPanel 的扩展,它允许我添加组件并让它们垂直显示,宽度相同。

我对 JPanel 的扩展会将其 LayoutManager 设置为使用 SpringLayout,并且每次添加组件时,它都会放入 SpringLayout 约束以将其附加到第一个组件的面板,然后将每个组件附加到前一个组件。

首先,这是一个 Oracle 编写的使用 SpringLayout 的示例,我将其更改为垂直放置组件而不是水平放置:

根据我对 SpringLayout 要求的理解,我编写了以下内容:

这是一个测试它的小程序:

组件在面板顶部彼此重叠显示。我想设置每个约束,当我添加它时,将每个组件的北端连接到前一个组件的南边缘,将它们按照添加的顺序垂直排列。正如https://docs.oracle.com/javase/tutorial/uiswing/layout/springfinishedAdding()上的“如何使用 SpringLayout”教程中所述,我有方法可以封装最后一个组件与其容器的连接。 html,并在我复制的演示程序中完成。

我不明白为什么我的组件相互重叠,但(两个)演示组件垂直相邻。我是否能够满足我最初的愿望,即让垂直组件在面板中拉伸成相同的大小?