- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
您好,我正在处理项目中基于 swing 的 gui 部分,我需要将 setBounds JFrame 的方法与 setResizable 调用同步,所以我这样做:
setResizable(true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle rect = new Rectangle(screenSize.width/2 - screenSize.width/4, screenSize.height/2 - screenSize.height/4, screenSize.width/2, screenSize.height/2);
setBounds(rect);
setResizable(false);
但结果是我的框架没有获得给定的边界,它只是禁用了调整大小功能。如果我删除最后一个 setResizable 调用,那么表单将获得正确的边界。实际上我有一个基于框架和许多面板的向导,我可以像状态一样更改框架上的面板。只有在一个面板中,我想给用户调整框架大小的机会,否则它应该是固定大小。所以在我的主框架中我实现了两个方法,enableWizardMode 和 enablePlayingGameMode:
@Override
public void enablePlayingGameMode() {
setResizable(true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(new Rectangle(screenSize.width/10, screenSize.height/10, screenSize.width - screenSize.width/5, screenSize.height- screenSize.height/5));
}
@Override
public void enableWizardMode() {
setResizable(true);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setBounds(new Rectangle(screenSize.width/2 - screenSize.width/4, screenSize.height/2 - screenSize.height/4, screenSize.width/2, screenSize.height/2));
setResizable(false);
}
我尝试使用 IComponentListener,但它并没有帮助我随机调整框架大小。我还尝试使用 SwingUtilities.invokeLater 将可调整大小的标志设置为 false,但这也无济于事。有人知道这个问题的解决方案吗??我运行 Linux 和 oracle jdk7。谢谢。
最佳答案
设置 preferredSize 以及调用 pack()
对我来说一直很有效。
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Toolkit;
import javax.swing.JFrame;
public class SizeFoo {
public static void main(String[] args) {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Rectangle rect = new Rectangle(screenSize.width / 2 - screenSize.width
/ 4, screenSize.height / 2 - screenSize.height / 4,
screenSize.width / 2, screenSize.height / 2);
System.out.println("rect: " + rect);
JFrame frame = new JFrame("Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setPreferredSize(new Dimension(rect.width, rect.height));
frame.setResizable(false);
frame.pack();
frame.setLocation(rect.x, rect.y);
//frame.setLocationRelativeTo(null);
frame.setVisible(true);
System.out.println("JFrame size:" + frame.getSize());
}
}
关于java - Swing setResizable 和 setBounds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9443990/
package data; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; publ
我使用 netbeans 作为 IDE。我如何在 JFrame 上设置 setResizable(false)。我在 netbeans 中看不到 JFrame 的对象。 最佳答案 只需在类的非静态方法
您好,我正在处理项目中基于 swing 的 gui 部分,我需要将 setBounds JFrame 的方法与 setResizable 调用同步,所以我这样做: setResizable(t
这个问题已经有答案了: JFrame not presenting any Components (4 个回答) 已关闭 6 年前。 我正在努力提高我的 java 技能(自从我编码以来已经有大约 10
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 9 年前。 Improve th
我制作游戏已经有一段时间了。最近我遇到一个错误,说 "Exception in thread "main" java.lang.Error: Unresolved compilation probl
我有一个奇怪的问题。我正在为窗口使用空布局(= JFrame 和在窗口上),如果我使用 setResizable (false),窗口大小会变大(向右和底部,我会说大约 10 像素)。我不知道为什么。
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 有关您编写的代码问题的问题必须在问题本身中描述具体问题 - 并包含有效代码以重现该问题。请参阅SSCCE.o
为什么这个程序不起作用? (它不打印“正在运行...”) package eu.inmensia.learn; import java.awt.Canvas; import java.awt.Dime
此代码由 Netbean 6.8 GUI 生成器自动生成。默认应用程序不包含在 jFrame 中!它仅在 jPanel 中,我不知道如何使其无法重新调整大小。所以我添加了一个 jFrame 来包含所有
这个小型 JavaFX 测试应用程序 import javafx.application.Application; import javafx.scene.Scene; import javafx.s
我有一个简单的 Atari 突破程序,长话短说,我的一个功能是允许用户调整窗口大小几秒钟,然后再次使窗口不可调整大小。一切正常,窗口从不可调整大小变为可调整大小几秒钟。应该发生的情况是,几秒钟后,窗口
如果有人将其标记为重复,我会自己做:我们很久以前就有一个非常相关的问题: Java setResizable(false) changes the window size (swing) 没有一个解决
我刚刚读过这个答案 https://stackoverflow.com/a/15560624/3211987但是如果我添加 for 循环,第一个 JFrame 的大小就可以了,但其他 JFrame 的
当我查看 Frame.setResizable 的文档时,我读到: Sets whether this frame is resizable by the user. 所以我知道我仍然可以调用它的 s
我是一名优秀的程序员,十分优秀!