Swing: définir la taille de la zone de contenu JFrame
j'essaie de faire un JFrame avec une zone de contenu utilisable d'exactement 500x500. Si je fais cela...
public MyFrame() {
super("Hello, world!");
setSize(500,500);
}
... J'obtiens une fenêtre dont la taille est 500x500, y compris la barre de titre, etc., où j'ai vraiment besoin d'une fenêtre dont la taille est quelque chose comme 504x520 pour tenir compte de la bordure de fenêtre et titlebar. Comment puis-je y parvenir?
17
demandé sur
igul222
2010-03-16 02:42:18
3 réponses
vous pouvez essayer quelques choses: 1 - un hack:
public MyFrame(){
JFrame temp = new JFrame;
temp.pack();
Insets insets = temp.getInsets();
temp = null;
this.setSize(new Dimension(insets.left + insets.right + 500,
insets.top + insets.bottom + 500));
this.setVisible(true);
this.setResizable(false);
}
2 - ou Ajouter un JPanel au panneau de contenu du cadre et Il suffit de définir la taille préférée/minimale de la un Composite de 500X500, composez le pack()
- 2 - est plus portable
23
répondu
ring bearer
2010-03-15 23:57:13
suffit d'utiliser:
public MyFrame() {
this.getContentPane().setPreferredSize(new Dimension(500, 500));
this.pack();
}
il n'y a pas besoin d'un JPanel pour être là, si vous voulez juste régler la taille du cadre.
24
répondu
Michael
2011-05-29 17:30:06
peu importe, j'ai compris:
public MyFrame() {
super("Hello, world!");
myJPanel.setPreferredSize(new Dimension(500,500));
add(myJPanel);
pack();
}
7
répondu
igul222
2010-03-15 23:58:33