Reconfiguration des pixels aprés l'ajout d'un menu.

Contenu du snippet

Avez-vous déjà remarqué que tous les pixels sont décalés dans une JFrame aprés avoir ajouté une JMenuBar ? Non ? C'est que vous n'avez jamais fait de setBounds() ou setSize() trés précis alors... Il y a environ 6 ou 7 pixels qui "débordent" de la fenêtre et c'est trés agaçant. Voici une méthode à intégrer à votre JFrame (votre source extends JFrame, c'est mieux).

Source / Exemple :


boolean frameSizeAdjusted = false;
public void addNotify()
{
    Dimension size = getSize();
    super.addNotify();

    if (frameSizeAdjusted) return;
    frameSizeAdjusted = true;
    Insets insets = getInsets();
    javax.swing.JMenuBar menuBar = getRootPane().getJMenuBar();
    int menuBarHeight = 0;
    if (menuBar != null)
    menuBarHeight = menuBar.getPreferredSize().height;
    setSize(insets.left + insets.right + size.width, insets.top + insets.bottom + size.height + menuBarHeight);
}

Conclusion :


C'est en fait une redéfinition d'une méthode qui existe déjà dans JComponent. Pour ceux qui ont ce problème, vous verrez, c'est trés pratique.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.