- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 SpringLayout
实现一个非常简单的 UI(部分原因是,与我在网上找到的大多数教程作者相反,与其他布局管理器相比,我的编码界面非常相似,并且部分原因是我想学习如何使用它)。用户界面基本上是这样的:
这一切都很好。如果我增加窗口大小,UI 会按照我想要的方式调整大小(将欢迎文本保持居中并扩展文本区域以填充所有新的可用空间)。但是,低于某个点(更具体地说,当窗口对于欢迎文本而言变得太窄时):
我希望窗口不允许进一步缩小,这样如果用户试图将窗口缩小到小于足以容纳组件的大小,它就会停止。我如何使用 SpringLayout
布局管理器完成此操作?
我知道我可以通过处理一些调整大小事件并检查是否达到最小尺寸,然后将尺寸设置为最小尺寸来做到这一点。但这需要我 a) 知道或知道如何计算窗口的最小尺寸,甚至在它呈现之前,b) 编写一堆事件处理代码只是为了让一些 UI 呈现正确,c) 编写一个一堆代码,我希望好的布局管理器能够处理这些事情;)
最佳答案
您可以覆盖TopLevelContainer
MinimumSize
您已将 JTextArea
放入 JScrollPane
最简单的方法是混合 LayoutManagers
(称为 NestedLayout
),方法是将 GUI 拆分为多个部分(分隔的 JPanels
,具有相同或不同的部分) LayoutManager
),而不是为整个 Container< 实现一些最复杂的
LayoutManager
(GridBagLayout
或 SpringLayout
)/
一些 LayoutManagers
完全忽略 setXxxSize
SpringLayout
不是我的 Java 菜
import java.awt.*;
import javax.swing.*;
public class MinSizeForContainer {
private JFrame frame = new JFrame("some frame title");
public MinSizeForContainer() {
JTextArea textArea = new JTextArea(15, 30);
JScrollPane scrollPane = new JScrollPane(textArea);
CustomJPanel fatherPanel = new CustomJPanel();
fatherPanel.setLayout(new SpringLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(fatherPanel, BorderLayout.CENTER);
frame.setLocation(20, 20);
frame.setMinimumSize(fatherPanel.getMinimumSize());
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
MinSizeForContainer Mpgp = new MinSizeForContainer();
}
});
}
}
class CustomJPanel extends JPanel {
private static final long serialVersionUID = 1L;
@Override
public Dimension getMinimumSize() {
return new Dimension(400, 400);
}
}
关于java - 确保 SpringLayout 不会缩小到一定大小以下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8719319/
我想问SpringLayout是否可以做绝对位置之类的事情,因为我认为当我最大化框架时绝对位置有问题,如果我需要设置,我必须使用什么JMenu 和 JToolBar 以及 JTextField 和 J
我在表单上使用了 SpringLayout,但是如您所见,它的外观并不好(大而且尺寸不佳)! public class t8 extends JFrame { JButton okButton, ca
我在做This例子。我的代码完全相同,但不是得到 我正在获取 谁能解释一下为什么吗? 最佳答案 很可能您正在运行一个不同的项目。运行按钮旁边有一个下拉箭头,单击它并选择要运行的正确项目。 关于java
SpringLayout 号称功能非常强大。我尝试使用 SpringLayout 实现我认为相当简单的布局,但失败得很严重。 减少到最少,我想在我的 JFrame 上并排放置 4 个 JButton:
我正在尝试使用 SpringLayout 实现一个非常简单的 UI(部分原因是,与我在网上找到的大多数教程作者相反,与其他布局管理器相比,我的编码界面非常相似,并且部分原因是我想学习如何使用它)。用户
我正在尝试使用 Swing 在 Java 中创建一个表单,但我在管理布局方面遇到了困难。 我想在对话框的中央有几个带标签的文本字段,并在右下角有“保存”和“关闭”按钮。 将按钮添加到对话框的右下方很简
我需要帮助创建 Java swing 表单。该表单是动态创建的,并要求用户提供各种输入。输入各不相同,可以是文本字段、单选按钮、组合框。我正在尝试确定这种表单的最佳布局。目前,我有类似的东西: JPa
我最近开始使用 Java 进行开发,并且非常享受这段经历。默认的 Java 包加载了有用的东西,并且拥有 Swing 包对创建 GUI 有很大帮助。我决定为我的 LayoutManager 使用 Sp
我的 GridLayout 遇到问题,JTextField 会变宽以适应比初始大小长的条目。另一位遇到此问题的发帖者被告知 SpringLayout 是最简单的解决方案,所以这就是我正在尝试的。然而,
我想将复杂的容器结构作为 SpringLayouts 的组合来管理(一系列独立的 SpringLayout 相互嵌套) 特别是,由包含 JPanel 的主 SpringLayout 管理的 JFram
使用SpringLayout时有没有简单的方法来定义节点的放置速度?我正在使用 JUng 库版本 2.1.1。 我什至创建了一个自己的 SpringLayout 类,以便可以更改任何参数,但更改“Sp
我不知道如何使带有 SpringLayout 的 JPanel 正确计算其首选大小,因为目前它始终是 (0, 0)。我尝试调用 panel.setPreferredSize(layout.prefer
我目前正在制作一个小型应用程序,我需要 Spring Utilities 类,该类扩展“JPanel”,因为它是一个内容 Pane ,但是我需要通过容器获取布局类型,但只有该类/框架使用 spring
我正在使用以下代码使用 SpringLayout 制作 GUI: private void createAndShowGUI() { frame = new JFrame("A GUI");
我有一个 JScrollPane,它有一个使用 SpringLayout 的 View 组件。 final JPanel panel = new JPanel(new SpringLayout());
SpringLayout 的文档说它从 java 1.4 开始就可用,我有大约 7 台旧的 mac,无法升级到任何较新版本的 mac os 10.5,这导致我最多只有 java 1.5.0_30。问题
我有一个卡片布局,可以使用 JComboBox 在面板之间切换。问题是当我重新调整窗口大小时,我里面的面板永远不会改变大小。当我使用 SpringLayout 时,我只需告诉某些东西与边框保持 x 像
TL;DR在不同的 DPI 设置上,我的应用程序的组件可能会重叠。为了摆脱这个问题,我想检查组件宽度,更新 UI 后它始终等于 0。问题末尾的简单代码。 基本问题是,在不同的 DPI 设置下,我的程序
我有一个 JPanel,其中包含另一个 JPanel,我想使用 SpringLayout 在其上放置一个 JButton。但由于某种原因,JButton 未绘制。但是,如果我使用绝对定位而不是布局管理
Oracle Java Swing 文档 layout managers似乎暗示在选择布局管理器时SpringLayout是一个选项。 (“SpringLayout 是一个灵活的布局管理器,专为 GU
我是一名优秀的程序员,十分优秀!