Java 如何在布局中用背景色填充跨越区域?
这是我当前界面的屏幕截图: 我的Java 如何在布局中用背景色填充跨越区域?,java,swing,user-interface,jcomponent,miglayout,Java,Swing,User Interface,Jcomponent,Miglayout,这是我当前界面的屏幕截图: 我的JLabeltargetJlabel包含在一个属性为spany 2的矩形中,该矩形带有红色虚线边框(我认为,该矩形称为JComponent?),我想用颜色填充所有矩形。但是,除了JLabel本身,我看不出如何设置任何东西的背景色 这是我的SSCCE: package com.sample; import java.awt.event.ActionEvent; import javax.swing.*; import java.awt.event.*; pub
JLabel
targetJlabel
包含在一个属性为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);
}
}
这个小小的变化就起到了作用:-)
d.add(targetJlabel, "growy, spany 2");