2017-08-22 3 views
0

Ich erstelle eine GUI mit MigLayout in Java auf Eclipse Neon. Mein Code sollte zwei Zeilen und zwei Spalten mit einer Lücke von 15 enthalten, die den Rahmen ausfüllen, wenn das Fenster erweitert wird. Ich bin mir nicht sicher, warum, aber es wird automatisch eine dritte Zeile generiert, die ich nicht loswerden kann. Ich habe das Layout in zwei Zeilen und Spalten fest programmiert und versucht, die dritte Zeile mit dem Swing-Editor zu entfernen. Während der Remove-Button in den Zeilen 0 und 1 funktioniert, löscht er sie und ihren Inhalt, sie tut nichts in der letzten Zeile.Zusätzliche Zeile kann nicht aus dem unteren Bereich von MigLayout entfernt werden

unten ein Bild von meinem Code ist mit dieser lästigen 3. Reihe läuft

Example

Hier ist mein Code

public Master() { 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setBounds(100, 100, 440, 163); 
    contentPane = new JPanel(); 
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); 
    setContentPane(contentPane); 
    contentPane.setLayout(new MigLayout("", "[grow]15[grow]", "[grow]15[grow]")); 

    btnDailyLog = new JButton("Daily Log"); 
    btnDailyLog.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent arg0) { 
     } 
    }); 
    contentPane.add(btnDailyLog, "spany 2,grow"); 


    btnEmpReports = new JButton("Employee Reports"); 
    btnJobReports = new JButton("Job Reports"); 

    contentPane.add(btnEmpReports, "grow,wrap"); 
    contentPane.add(btnJobReports, "grow,wrap"); 


} 

Antwort

3

Die zusätzliche Reihe ist aufgrund der wrap Anweisung in contentPane.add(btnJobReports, "grow,wrap"); wrap entfernen Um das Problem zu beheben:

contentPane.add(btnJobReports, "grow");

Zum Beispiel:

enter image description here

import java.awt.Dimension; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 

import net.miginfocom.swing.MigLayout; 

public class Tester extends JPanel{ 
    public Tester(){ 
     super(new MigLayout("", "[grow]15[grow]", "[grow]15[grow]")); 

     JButton btnDailyLog = new JButton("Daily Log"); 
     JButton btnEmpReports = new JButton("Employee Reports"); 
     JButton btnJobReports = new JButton("Job Reports"); 

     add(btnDailyLog,"spany 2,grow"); 
     add(btnEmpReports, "grow,wrap"); 
     add(btnJobReports, "grow"); 
    } 

    @Override 
    public Dimension getPreferredSize() { 
     return new Dimension(440, 163); 
    } 

    private static void createAndShowGUI(){ 
     JFrame frame = new JFrame("Tester"); 

     Tester tester = new Tester(); 
     frame.add(tester); 

     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.pack(); 
     frame.setLocationByPlatform(true); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     javax.swing.SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       createAndShowGUI(); 
      } 
     }); 
    } 
} 
+1

Danke. Ich war nur so facepalpaled, dass meine Hand durch meinen Hinterkopf herauskam. Für alle, die dies lesen, mit dem gleichen Problem: Dies ist die richtige Lösung, weil "wrap" im Wesentlichen die gleiche Funktion wie ein Wagenrücklauf in einer Textdatei funktioniert und eine neue Zeile erstellt. –

+0

@ChrisPhillips Sie sind herzlich willkommen! Ich bin froh, dass es geholfen hat :) – tenorsax

Verwandte Themen