如何使用背景颜色填充跨区域在MigLayout中?

时间:2016-03-30 13:49:14

标签: java swing user-interface jcomponent miglayout

这是我当前界面的截图:

Screenshot

我的JLabel targetJlabel包含一个属性为spany 2的矩形,带有红色虚线边框(我想,这个矩形称为JComponent?),而我和#39;我想用一种颜色填充所有矩形。但是,除了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);
    }
}

1 个答案:

答案 0 :(得分:2)

这个小小的改变可以解决问题: - )

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

enter image description here