2011-05-26 15 views
5

Esta es una pregunta MigLayout-newbie. Me gustaría saber cómo dibujar un separador desde el final de una etiqueta en todo el ancho de un panel.Cómo dibujar un separador en un panel usando MigLayout

Aquí está mi código de ejemplo:

package com.ndh.swingjunk; 

import java.awt.*; 
import javax.swing.*; 
import net.miginfocom.swing.MigLayout; 

class MyJFrame extends JFrame { 
    public MyJFrame() { 
     super(); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JLabel label = new JLabel("foo"); 
     label.setFont(new Font("Tahoma", Font.BOLD, 11)); 
     JSeparator separator = new JSeparator(); 
     JLabel anotherLabel = new JLabel("some other label"); 
     anotherLabel.setFont(new Font("Tahoma", Font.PLAIN, 11)); 
     JButton button1 = new JButton("button 1"); 
     JButton button2 = new JButton("button 2"); 
     JPanel panel = new JPanel(new MigLayout()); 
     panel.add(label); 
     panel.add(separator, "growx, wrap"); 
     panel.add(anotherLabel); 
     panel.add(button1); 
     panel.add(button2); 
     getContentPane().add(panel); 
     pack(); 
    } 
} 

public class SeparatorLayoutQuestion { 
    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      @Override public void run() {new MyJFrame().setVisible(true);}});}} 

y aquí está el resultado:

image of messed-up layout

que es terriblemente cojo. Me gustaría que el separador se extenderá desde el final de "Foo" al final del panel, todo el camino a través de la tecla 2.

Respuesta

6

Esto es lo que funcionó para mí, tuve que usar "división" para que la etiqueta y el separador pudieran compartir la misma celda:

JPanel panel = new JPanel(new MigLayout()); 
panel.add(label, "split 2, span"); 
panel.add(separator, "growx, wrap"); 
panel.add(anotherLabel); 
panel.add(button1); 
panel.add(button2); 
1

intento de añadir

"span 3" 

a la primera etiqueta

Cuestiones relacionadas