2016-11-08 3 views
0

Wie kann ich die Höhe der Schaltflächen ein bisschen größer und die Breite der rechten und linken Spalten auf die gleiche Größe machen. Ich habe versucht weightxweightyheightxheighty aber es hat nicht funktioniert. Danke im Voraus. Hier ist mein Code:Java - Größenanpassung von Schaltflächen in GridBagLayout

Container contentPane = getContentPane(); 
contentPane.setLayout(new GridBagLayout()); 
GridBagConstraints c = new GridBagConstraints(); 
c.insets = new Insets(20,20,20,20); 
c.fill = GridBagConstraints.HORIZONTAL; 
c.weightx = 1.0; 

JButton back = new JButton("Back to previous menu"); 
c.gridx = 1; 
c.gridy = 0; 
contentPane.add(back,c); 

JLabel welcome = new JLabel("Hi secretary, please select an action"); 
c.gridx = 0; 
c.gridy = 0; 
contentPane.add(welcome,c); 

Es gibt mehr Code von Schaltflächen Definition, aber es ist einfach positionieren sich auf das Layout.

Picture

Antwort

0

Sie die bevorzugte Größe der Tasten nicht festgelegt. Dies führt zu schwerwiegenden visuellen Problemen für Benutzer, deren Desktop-Schriftarten sich von Ihren unterscheiden.

Sie sollten die Schaltfläche ihre eigene bevorzugte Größe definieren lassen. Der beste Weg, um die bevorzugte Höhe zu vergrößern ist mit GridBagConstraints.ipady:

c.ipady = 24; 

Eine weitere Option ist JButton.setMargin zu verwenden, um jede Taste einen zusätzlichen Spielraum zu geben:

Insets margin = new Insets(12, 0, 12, 0); 
back.setMargin(margin); 
welcome.setMargin(margin); 

der linken und rechten Seite Erzwingen gleiche Breiten haben ist schwieriger. GridBagLayout ist dazu nicht in der Lage. Das Feld weightx legt nur die Verteilung von zusätzlichem Speicherplatz fest, wenn das Fenster breiter als erforderlich ist, um die bevorzugten Größen aller untergeordneten Komponenten zu berücksichtigen. Wenn die Spalten zu Beginn unterschiedliche Breiten haben, wird die Verteilung des zusätzlichen Speicherplatzes mit weightx nicht gleich groß.

Persönlich glaube ich nicht, die beiden Seiten zu zwingen, gleiche Breiten zu haben, wird jeden Wert hinzufügen. Wenn Sie darauf bestehen, dass die linke und die rechte Seite genau die gleiche Breite haben, müssen Sie die Verwendung von GridBagLayout beenden. SpringLayout kann es, aber es ist schwierig zu verwenden. Wenn Sie bereit sind, eine Abhängigkeit von Drittanbietern einzuführen, kann etwas wie MiG Layout dies tun.

Verwandte Themen