2008-10-29 7 views
3

Je rencontre un problème en créant un panneau global de taille fixe pour une application graphique à écran tactile qui doit occuper tout l'écran. En un mot, l'écran tactile est de 800 x 600 pixels, et donc je veux que le panneau GUI principal soit de cette taille. Lorsque je démarre un nouveau projet GUI dans NetBeans, je définis les propriétés du panneau principal pour la taille min/max/preferred à 800 x 600, et le panneau dans la vue 'Design' change de taille. Cependant, lorsque je lance l'application, elle est redimensionnée à la taille par défaut d'origine.Concepteur d'interface graphique Netbeans et panneaux d'application de taille fixe

L'ajout de ce code après initComponents() ne contribue pas:

this.mainPanel.setSize(new Dimension(800,600)); 
this.mainPanel.setMaximumSize(new Dimension(800,600)); 
this.mainPanel.setMinimumSize(new Dimension(800,600)); 
this.mainPanel.repaint(); 

J'ai jeté un œil dans tous les fichiers de ressources et ne peut pas sembler trouver des valeurs qui recouvriront ces (ce qui semble un peu de toute façon impossible, étant donné que je les place après initComponents() fait son travail). J'utilise la mise en page FreeDesign, car je voulais un contrôle complet sur l'endroit où je mettais les choses.

Je soupçonne le gestionnaire de disposition de redimensionner les choses en fonction du nombre de widgets que j'ai sur l'écran, parce que les différents écrans prototypés viennent à différentes tailles.

L'aide est appréciée!

Répondre

0

J'utilise cette méthode pour terminer la tâche, je ne sais pas si c'est la meilleure et vous devez attendre pour l'appeler jusqu'à ce que le cadre soit réellement à l'écran.

protected void growBig() 
    { 
    int screenWidth = java.awt.Toolkit.getDefaultToolkit().getScreenSize().width; 
    int screenHeight = java.awt.Toolkit.getDefaultToolkit().getScreenSize().height; 
    Rectangle rectangle = getFrame().getBounds(); 
    rectangle.setSize(screenWidth, screenHeight); 
    getFrame().setBounds(0, 0, screenWidth, screenHeight); 
    getFrame().setSize(screenWidth, screenHeight); 
    getFrame().doLayout(); 
    getFrame().validate(); 
    updateUI(); 
    } 
+0

Cela n'a pas fonctionné. Le problème principal (j'imagine) est que updateUI() ne se résout pas à la classe de base (FrameView), et je ne peux pas non plus l'appeler sur l'image de haut niveau retournée par getFrame(), sur laquelle j'ai exercé la taille . La taille est définie en fonction du débogueur, elle n'a aucun impact. –

1

Avez-vous essayé java full screen mode?

+0

Merci; Cela semble prometteur. Je l'ai travaillé sur ma machine locale; maintenant je dois juste voir si le système d'écran tactile le soutient. On dirait que ça devrait ... –

0

Je ne sais pas comment fonctionne votre appareil à écran tactile. Mais si vous utilisez l'aperçu NetBeans, votre panneau est placé dans un conteneur externe tel que JFrame/JWindow. Et juste peut-être que vous définissez le cadre à 800x600.

Si tel est le cas, alors le problème pourrait être que le cadre mange quelques pixels pour sa propre bordure, laissant la taille de votre panneau < 800x600. Et dans ce cas, votre panneau ne pourra pas utiliser vos paramètres min/max et revenir aux tailles par défaut.

+0

Eh bien, cela arrive peu importe la taille du panneau (par exemple plus petit ou plus grand). Cela semble lié à la taille de JFrame externe étant définie par une ressource par défaut, et vouloir redimensionner en fonction des widgets que j'ajoute. Donc, si elle n'a qu'un bouton, elle veut être petite, plus grande, etc. –

+0

Notez que cela se passe sur ma boîte de dev, donc elle n'est pas liée à l'écran tactile. Ça arrive aussi, mais ce n'est pas directement lié à l'écran tactile. –

Questions connexes