Alterar o tamanho de todos os componentes numa java.awt.Frame em Java

Quando estamos demasiado habituados a uma linguagem de programação por vezes automatizamos alguns procedimentos…

Eu vinha de um background em C# e agora estou a fazer umas tarefas em JAVA e deparei logo com algumas diferenças “subtis”.

Tarefa: Alterar o tamanho de todos os componentes e respectivas fontes dentro de uma dialog composta por uma java.awt.Frame.

Depois de algumas tentativas aqui esta o código com que consegui obter resultados:

protected void changeContent(Container parent) 
{
    for (Component comp : parent.getComponents()) 
    {
        changeFont(comp);
        comp.setMaximumSize( new java.awt.Dimension(comp.getWidth()*2, comp.getHeight()*2) );
        comp.setPreferredSize( new java.awt.Dimension(comp.getWidth()*2, comp.getHeight()*2) );
        comp.setSize( comp.getWidth()*2, comp.getHeight()*2);
        if (comp instanceof Container) 
        {
            changeContent((Container)comp);
        }
    }
}
protected void changeFont(Component comp) 
{
    AffineTransform at = AffineTransform.getScaleInstance(2, 2);
    if (comp.getFont() != null)
    {
        Font font = comp.getFont().deriveFont(at);
        comp.setFont(font);
    }
}

 

No meu caso, estas duas pequenas funções resolveram os meus problemas. Como é obvio no constructor do formulário coloquei no parametro do ChangeContent() o objecto que representava a Frame.

Deixar uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *