2012-05-05 1 views
2

Je crée un JDialog avec netbeans comme IDE. changer la taille de la façon dont je veux dans NetBeans, et je peux le voir mettre à jour le prefferredSize, mais quand je lance mon application, il ressemble à ceci:NetBeans JDialog size

enter image description here

Y at-il autre chose que je dois mettre définir la taille? Ou au moins le faire correctement dimensionné afin que je puisse voir les contrôles ... (il ya 6 dessus)

+0

Pour une meilleure aide plus rapidement, postez un [SSCCE] (http://sscce.org/). –

Répondre

2

Je suppose que vous utilisez peut-être le constructeur NetBeans GUI, les solutions possibles/suggestions,

  1. Vous pourriez manquer dialog.pack();
  2. clic droit JDialog> Propriétés> (Set) minimumSize
  3. (Suggestion) Fossé le GUI Builder, apprenez Java au lieu d'apprendre un IDE!

BTW, cela fonctionne pour moi,

import javax.swing.JDialog; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.SwingUtilities; 

public class DialogsTest { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       JFrame f = new JFrame(); 

       f.setSize(400, 300); 
       f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       f.setVisible(true); 

       JPanel message = new JPanel(); 
       message.add(new JLabel("This is a dialog :)")); 
       JDialog dialog = new JDialog(f, "Dialog"); 

       dialog.setContentPane(message); 
       dialog.pack(); 
       dialog.setLocationRelativeTo(f); 
       dialog.setVisible(true); 
      } 
     }); 
    } 
} 
+2

abandonner l'IDE? Eh bien, dialog.pack() est correct, mais cet autre conseil est garbage. – Kieveli

0

Utilisez plutôt la méthode setSize(). Pour une raison quelconque, cela fonctionne, mais pas setPreferredSize() (du moins pas comme prévu). Par ailleurs, il est généralement conseillé de ne pas définir une taille spécifique sur les composants.

+0

Comment rendre les contrôles visibles sans définir une taille spécifique? Actuellement, quand je ne définis pas une taille, je reçois ce que vous voyez ci-dessus. – Josh

+0

@Josh Dans mon expérience, il est généralement préférable de ne pas limiter le composant à une dimension spécifique, mais plutôt de laisser la taille. Allez-y et utilisez 'setSize()' cela rendra la boîte de dialogue visible. Je suppose que la boîte de dialogue est petite à cause de la méthode 'pack()'. – StartingGroovy

3

Dans le commutateur de concepteur de formulaire à l'onglet "Code" de la fenêtre des propriétés. Il existe une propriété nommée "Stratégie de taille de formulaire".

Par défaut, c'est pack() qui signifie que le dialogue est redimensionné pour être aussi grand que les composants contenus l'exigent. Pour plus de détails, veuillez lire les Javadocs pour la méthode pack(). Sans savoir quels composants vous mettez dans la boîte de dialogue, il est difficile de dire pourquoi pack() ne fonctionne pas pour vous.

Si vous changez que pour « Générer Redimensionner code » la boîte de dialogue collera à la taille que vous définissez:

enter image description here