2016-04-22 10 views
0

Der folgende CodeWie wird bei der Teilung von Zellen in MigLayout eine Lücke von Null erzeugt?

public class JSplitGap extends JPanel { 

    { 
     setLayout(new MigLayout()); 
    } 

    { 
     JButton ans = new JButton("Button 1"); 
     add(ans, "split 2"); 
    } 

    { 
     JButton ans = new JButton("Button 2"); 
     add(ans, ""); 
    } 

    public static void main(String[] args) { 
     JFrame frame = new JFrame(); 
     frame.setContentPane(new JSplitGap()); 
     //frame.setSize(1024, 768); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
    } 
} 

gibt die folgende

enter image description here

d.h. mit einigen Lücken zwischen den Tasten.

Obwohl es heißt,

Split [count] Splits die Zelle in eine Anzahl von Unterzellen. Praktisch bedeutet dies, dass die nächsten Zählernummern-Komponenten in die gleiche Zelle ohne Lücken nebeneinander gelegt werden. Nur die erste Komponente in eine Zelle kann den Split festlegen, alle nachfolgenden Splitschlüsselwörter in der Zelle werden ignoriert. count defaults to infinit, wenn nicht angegeben, welche bedeutet, dass Split allein alle kommenden Komponenten in die gleiche Zelle setzen wird. "Split", "Wrap" oder "Newline" wird aus der Split-Zelle herausbrechen. Die letzten beiden werden wie üblich in eine neue Zeile/Spalte verschoben. Hinweis! "überspringen" wird überspringen, wenn die Teilung und weiter in der nächsten Zelle. Beispiel: "Split" oder "Split 4".

in der documentation.

Was ist hier falsch und wie zu beheben?

+0

Ich habe das nicht versucht, aber probiere diese aus -> new MigLayout ("inets 0 0 0 0"); oder neues MigLayout ("fill"); – ziLk

+0

Versucht. 'fill' hat keine Wirkung, während' insets' das äußere Padding entfernt, aber nicht zwischen den Buttons. – Dims

+0

Haben Sie die Codezeile meiner Antwort ausprobiert? – ziLk

Antwort

0

Versuchen Sie, diese

setLayout(new MigLayout("gap rel 0", "grow")); 
+0

Hat nicht funktioniert, sorry – Dims

0

Sie eine Lücke zwischen den Tasten mit dem der gapx Komponente Einschränkung festlegen:

package com.zetcode; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.SwingUtilities; 
import net.miginfocom.swing.MigLayout; 

public class MigLayoutSplitGapEx extends JFrame { 

    public MigLayoutSplitGapEx() { 

     initUI(); 
    } 

    private void initUI() { 

     setLayout(new MigLayout()); 

     JButton ans = new JButton("Button 1"); 
     add(ans, "split 2"); 

     JButton ans2 = new JButton("Button 2"); 
     add(ans2, "gapx 0"); 

     pack(); 
     setTitle("MigLayout split gap"); 
     setLocationRelativeTo(null); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    
    } 

    public static void main(String[] args) { 

     SwingUtilities.invokeLater(() -> { 
      MigLayoutSplitGapEx ex = new MigLayoutSplitGapEx(); 
      ex.setVisible(true); 
     }); 
    } 
} 

Und hier ist der Screenshot:

enter image description here