可根据屏幕分辨率调整大小,Java Application

时间:2016-04-10 12:51:42

标签: java image jframe resolution resizable

我正准备将这个应用程序准备好分发。但是我仍然没有找到一种方法来使应用程序适合任何屏幕。事实上我正在使用pngs文件作为背景和按钮(主要是)进入JLabel,这是一个很大的问题我认为。我想要实现的是让JFrame及其组件可调整大小但保持比例,就像响应式网站一样! 其他方式我计划创建原始的png但更小,然后创建新的框架,同时启动应用程序询问系统哪个框架应该最好地适应屏幕并使用它(但我知道我不会很好,然后当然os如果你知道我的意思,有时会以不同的方式使用屏幕分辨率使得显得更小或更大。 (我正在使用Netbeans)。

非常感谢,我正在寻找与您讨论此问题的前言,我肯定会关注其他许多人。

1 个答案:

答案 0 :(得分:1)

#include <stdbool.h> 有一些方法可以满足您的需求,包括获取当前的屏幕尺寸:

Toolkit.getDefaultToolkit()

这篇文章讨论Resize image while keeping aspect ratio in Java

现在您已拥有屏幕尺寸,您可以计算图像高度/宽度与当前帧尺寸的比率,并根据当前帧尺寸与全屏尺寸的%差异进行缩放。

private void makeFrameFullSize(JFrame aFrame)
{
    Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
    aFrame.setSize(screenSize.width, screenSize.height);
}

这是一个示例实用程序类,可以缩放图像以适合画布(如背景图像)并将其缩放以适合:

package net.codejava.graphics;

import java.awt.Component; import java.awt.Graphics; import java.awt.Image;

private Dimension get getFrameToScreenRatio(Frame aFrame){
    Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
    return dimension.setSize(aFrame.getWidth()/dimension.getWidth(), aFrame.getHeight()/dimension.getHeight());
}