2016-03-30 4 views
2

Это скриншот моего текущего интерфейса:Как заполнить область покрытия цветом фона В MigLayout?

Screenshot

Мои JLabeltargetJlabel содержится прямоугольником имущества spany 2 с красной пунктирной границей (? Я думаю, прямоугольник называется JComponent), и Я хотел бы заполнить весь этот прямоугольник цветом. Тем не менее, я не вижу, как установить цвет фона на все, кроме самого JLabel.

Вот мой SSCCE:

package com.sample; 

import java.awt.event.ActionEvent; 
import javax.swing.*; 
import java.awt.event.*; 

public class App 
{ 
    public static void main(String[] args) { 
     App program = new App(); 
     SwingUtilities.invokeLater(program::run); 
    } 

    private void run() { 
     JFrame w = new JFrame(); 
     w.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 

     JPanel d = new JPanel(); 
     d.setLayout(new MigLayout(
       "debug, fill", 
       "[min!][min!][min!][min!][min!]", 
       "[][][grow]")); 

     JLabel targetJlabel = new JLabel("I want this colour to fill up to the dotted red line"); 
     targetJlabel.setBackground(Color.CYAN); 
     targetJlabel.setOpaque(true); 
     d.add(targetJlabel, "spany 2"); 

     d.add(new JTextField("type here"), "growx, spanx 3"); 

     d.add(new JButton("Search"), "spany 2, wrap"); 

     d.add(new JCheckBox("box1")); 
     d.add(new JCheckBox("box2")); 
     d.add(new JCheckBox("box3"), "wrap"); 

     w.add(d); 
     w.pack(); 
     w.setVisible(true); 
    } 
} 

ответ

2

Это небольшое изменение делает трюк :-)

d.add(targetJlabel, "growy, spany 2"); 

enter image description here

+0

Ах, это красиво, спасибо! –

+0

@JamieBirch Добро пожаловать :-) – RubioRic