2 votes

Fenêtre de l'application Java AWT avec un remplissage

Je suis en train de construire une application AWT simple en Java. Je veux que tous les containers dans la fenêtre principale soient séparés par un peu. Je peux accomplir cela en paramétrant Hgap et Vgap dans le constructeur BorderLayout (voir ci-dessous).

Cependant, je n'arrive pas à trouver comment mettre une marge entre les containers et les bords de la fenêtre principale. Comment puis-je ajouter quelques pixels de padding à la fenêtre principale?

import java.awt.*;
import java.applet.Applet;

public class LayoutTest extends Applet {

    public void init() {

        BorderLayout layout = new BorderLayout(8, 8);

        setLayout(layout);

        add(new Button("Gauche"), BorderLayout.CENTER);
        add(new Button("Droite"), BorderLayout.EAST);
    }
}

3voto

Joshua McKinnon Points 12379

Je suis d'accord avec les autres réponses et je recommanderais d'utiliser Swing (utiliser JApplet à la place), ce qui rendrait toutes sortes de choses plus faciles (vous pourriez simplement appeler setBorder et utiliser BorderFactory pour créer une bordure, par exemple), mais dans votre cas, vous pouvez définir les marges en remplaçant getInsets:

   @Override
   public Insets getInsets()
   {
      return new Insets(10,10,10,10);
   }

Remplacez 10 par ce que vous voulez.

Il ne semble pas y avoir de setter, sinon je dirais de l'utiliser à la place. S'il y a une meilleure façon de le faire dans le cas d'un Applet AWT, quelqu'un me corriger s'il vous plaît.

Si vous décidez d'utiliser Swing, consultez : Comment utiliser les bordures

1voto

Bandi-T Points 1628

AWT n'est pas la technologie la plus récente sur le marché. Donc, à moins que vous n'ayez un besoin spécifique de travailler avec AWT, je vous recommanderais de vérifier les remplacements modernes Swing ou SWT - beaucoup plus confortables, flexibles, personnalisables et prévisibles dans leur comportement que AWT.

Une des raisons de leur développement était justement le fait que le type de réglage visuel fin que vous essayez de faire ici est inutilement difficile (voire impossible) avec AWT.

0voto

Alors que vous pourriez probablement vous en sortir en définissant les insets de l'applet, je suggère de passer à Swing (étendre javax.swing.JApplet). Ensuite, définissez un JPanel comme paneau de contenu avec une EmptyBorder de largeurs appropriées.

Notez également que vous devrez probablement rapidement passer à un gestionnaire de mise en page plus sophistiqué, tel que GridBagLayout.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X