java - 如何调整/缩放复杂的 JFrame

标签 java jframe jfreechart

我有一个复杂的 JFrame。它在绝对布局中有一个主面板,其中有按钮和标签,几个 jFreeCharts 和一个带有特定 GridLayout 的第二个(子)面板,我在其中填充了多个标签。

是否有办法调整/缩放整个内容?

pack() does not work because of the layout.

是否有更基本的“ScaleTheWholeWindow”方法?

最佳答案

我的评论的代码看起来像这样。我没有测试过,这只是一个想法。用代码更容易表达我的想法。

public void scaleContainer(Container c, double xFactor, double yFactor)
{
    Component[] eles = c.getComponents();
    for(int i = 0 ; i < eles.length ; i++)
    {
        eles[i].setBounds(new Rectangle(
             (int) eles[i].getX() * xFactor, 
             (int) eles[i].getY() * yFactor, 
             (int) eles[i].getWidth() * xFactor, 
             (int) eles[i].getHeight() * yFactor))
        if(eles[i] instanceof Container)
        {
            if(((Container)eles[i]).getLayout() == null) //If the container has it's own layout, let it assign it's own components
                scaleContainer((Conatiner)eles[i], xFactor, yFactor);
        }
    }
}

如果您想按固定数量的像素而不是因子进行缩放,则需要计算因子。该系数为1 + (extraWidth/previousWidth)(高度类似)

关于java - 如何调整/缩放复杂的 JFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19301646/

相关文章:

java - 删除并重新安装 Spring PetClinic 示例应用程序后,tomcat 7 服务器将无法启动

java - 如何编写一个 Consumer 来计算它被调用了多少次?

java - Jframe 对我来说不能正常工作

java - 我无法将按钮移至底部 - JFrame

java - JFreeChart 1.5.0 中的 createBarChart3D 是否等效?

java - Bukkit - 如何在项目传说中创建 .replace (字符串列表)

java - javafx/scenebuilder 文本字段或标签中的 mysql 数据

java - 最大化 JFrame |无全屏

java - 图表,服务器端还是客户端?

java - 组合条形图和折线图 JfreeChart。尝试用折线图得出 3 点平均值。值未正确排列