java – 不可调整大小的窗口边框和定位
发布时间:2020-12-14 05:44:37 所属栏目:Java 来源:网络整理
导读:如果我创建不可调整大小的JFrame,并且启用了 Windows Aero,则setLocation似乎没有正确考虑窗口边框. 在下面的代码中,我希望第二帧位于第一帧的右侧,而不是边框??重叠.如果禁用Aero或者我删除了对setResizable的调用,则按预期完成. import java.awt.Rectangle
如果我创建不可调整大小的JFrame,并且启用了
Windows Aero,则setLocation似乎没有正确考虑窗口边框.
在下面的代码中,我希望第二帧位于第一帧的右侧,而不是边框??重叠.如果禁用Aero或者我删除了对setResizable的调用,则按预期完成. import java.awt.Rectangle; import javax.swing.JFrame; public class FrameBorders { public static void main(String[] args) { JFrame frame1 = new JFrame("frame 1"); JFrame frame2 = new JFrame("frame 2"); frame1.setResizable(false); frame2.setResizable(false); frame1.setVisible(true); Rectangle bounds = frame1.getBounds(); frame2.setLocation(bounds.x+bounds.width,bounds.y); frame2.setVisible(true); } } 我做错了什么或这是一个错误? 编辑:添加了截图(也将frame2更改为JDialog而不是JFrame) Aero On: Aero Off: Aero On但可调整大小: 解决方法
假设您调整边界以在平台上看起来很好.假设用户的平台具有不同的字体,比如说更大的FontMetrics.这个例子有点人为,但你明白了.如果更改不可调整大小的容器的边界,请确保无论主机平台的默认字体如何,任何文本都可见. import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingUtilities; /** * @see https://stackoverflow.com/a/12532237/230513 */ public class Evil extends JPanel { private static final String s = "Tomorrow's winning lottery numbers: 42,"; private JLabel label = new JLabel(s + "3,1,4,5,9",JLabel.LEFT); public Evil() { this.add(label); } private void display() { JFrame f = new JFrame("Evil"); f.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); f.add(this,BorderLayout.WEST); f.pack(); int w = SwingUtilities.computeStringWidth( label.getFontMetrics(label.getFont()),s); int h = f.getHeight(); f.setSize(w,h); f.setResizable(false); f.setLocationRelativeTo(null); f.setVisible(true); } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { @Override public void run() { new Evil().display(); } }); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- setOpaque(真/假); Java的
- java – 在IntelliJ Idea中用静态导入替换常量/方
- java – Spring – server.connection-timeout无
- Spring MVC+FastJson+Swagger集成的完整实例教程
- java – 在tomcat 6中部署spring app时出现“访问
- Java – 抽象类和子类的二进制兼容性
- Java在计算上给出了错误的答案
- 夯实Java基础系列4:一文了解final关键字的特性、
- java – 将令牌添加到lucene tokenstream
- java – “instanceof List”和“o instanceof L
热点阅读