2017-02-21 1 views
-2

Ceci crée un cadre dont le bouton est de taille égale à l'image et l'étiquette ne se met pas en place comme je le souhaitais.JButton obtenant une taille égale à Jframe lors de l'ajout de plusieurs composants

public class Try extends JFrame { 
    public Try(){ 
     JFrame f = new JFrame("TRY"); 
     JButton btn = new JButton(HI); 
     JLabel l = new JLabel("label"); 
     btn.setBounds(50,100,100,50); 
     l.setBounds(50,0,100,100); 
     f.add(btn); 
     f.add(l);***strong text*** 
     f.setSize(500,500); 
     f.setVisible(true); 
     f.getContentPane().setBackground(Color.white); 
    } 

    public static void main(String[] args){ 
     Try t = new Try(); 
    } 
} 
+1

vous devez essayer d'utiliser un gestionnaire de mise en page https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html – Jerry06

+0

Fournir ASCII art ou un dessin simple de la mise en page * prévue * de l'interface graphique à la taille minimale, et si redimensionnable, avec plus de largeur et de hauteur. (Avec le bouton et l'étiquette positionnés à ces limites, il y a ** beaucoup ** d'espace supplémentaire dans l'interface graphique, suggérant qu'il y aura plus de composants.) –

+0

Indentation corrigée – stealthjong

Répondre

-1

Lorsque vous créez un JFrame, par défaut, il est livré avec BorderLayout, donc vous devez spécifier la disposition que vous souhaitez utiliser pour un cadre.

f.setLayout(null); 

Essayez mise en page null si vous souhaitez personnaliser entièrement l'emplacement et la taille de chaque composant DFrame vous ajouterez. mais rappelez-vous que la mise en page null n'est pas le meilleur choix :)

+2

* "Essayez null mise en page si vous voulez .. "* ..obtenir beaucoup d'argent pour maintenir le code buggy (ou voulez vous faire virer). Les interfaces graphiques Java doivent fonctionner sur différents systèmes d'exploitation, taille d'écran, résolution d'écran, etc., en utilisant différents PLAF dans différents environnements locaux. En tant que tels, ils ne sont pas propices à la mise en page pixel parfait. Utilisez plutôt des gestionnaires de disposition, ou [des combinaisons de ceux-ci] (http://stackoverflow.com/a/5630271/418556) avec un remplissage de mise en page et des bordures pour [espace blanc] (http://stackoverflow.com/a/17874718/ 418556). –

+0

Je suis encore en train d'apprendre le Java en UNI, donc mes réponses ne sont peut-être pas parfaites, essayant juste d'aider autant que possible. Merci de me corriger, je m'en souviendrai à l'avenir. – Helvijs

+2

* ".. J'essaie juste d'aider autant que je peux" * La meilleure aide que vous pourriez donner à votre niveau actuel d'expérience est de lire les réponses des personnes qui connaissent la mise en page Swing mieux que vous (et de ne pas répondre). * "MAIS N'OUBLIEZ PAS ..." * S'il vous plaît arrêtez de nous CRIER. Pour ** bold **, utilisez ** ** bold ** ou * italic * usez * italic *. –