Java Can';不要更改布局边框的颜色
我正在做一个简单的Swing布局(请参阅),但由于某种原因,无论我尝试什么,我都无法更改分割UI三个部分的“边框”的颜色。我错过什么了吗 布局是使用GroupLayout完成的 编辑: 绿色部分是GroupLayout中包含的每个单独的JPanel 我试过在任何有意义的物体上使用背景色和前景色。我尝试过对每个JPanel应用EmptyBorder,但仍然没有成功。我认为这可能与布局有关,但我甚至不确定这一点 这是相关的布局代码。请注意,这都是由Netbeans自动生成的:Java Can';不要更改布局边框的颜色,java,swing,layout,colors,border,Java,Swing,Layout,Colors,Border,我正在做一个简单的Swing布局(请参阅),但由于某种原因,无论我尝试什么,我都无法更改分割UI三个部分的“边框”的颜色。我错过什么了吗 布局是使用GroupLayout完成的 编辑: 绿色部分是GroupLayout中包含的每个单独的JPanel 我试过在任何有意义的物体上使用背景色和前景色。我尝试过对每个JPanel应用EmptyBorder,但仍然没有成功。我认为这可能与布局有关,但我甚至不确定这一点 这是相关的布局代码。请注意,这都是由Netbeans自动生成的: javax.s
javax.swing.GroupLayout pnlTopLayout = new javax.swing.GroupLayout(pnlTop);
pnlTop.setLayout(pnlTopLayout);
pnlTopLayout.setHorizontalGroup(
pnlTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 532, Short.MAX_VALUE)
);
pnlTopLayout.setVerticalGroup(
pnlTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 59, Short.MAX_VALUE)
);
javax.swing.GroupLayout pnlSideLayout = new javax.swing.GroupLayout(pnlSide);
pnlSide.setLayout(pnlSideLayout);
pnlSideLayout.setHorizontalGroup(
pnlSideLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 200, Short.MAX_VALUE)
);
pnlSideLayout.setVerticalGroup(
pnlSideLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 214, Short.MAX_VALUE)
);
javax.swing.GroupLayout pnlMainLayout = new javax.swing.GroupLayout(pnlMain);
pnlMain.setLayout(pnlMainLayout);
pnlMainLayout.setHorizontalGroup(
pnlMainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 326, Short.MAX_VALUE)
);
pnlMainLayout.setVerticalGroup(
pnlMainLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 214, Short.MAX_VALUE)
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(pnlSide, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(pnlMain, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addComponent(pnlTop, javax.swing.GroupLayout.DEFAULT_SIZE, 532, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addComponent(pnlTop, javax.swing.GroupLayout.PREFERRED_SIZE, 59, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(pnlMain, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(pnlSide, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
);
您应该设置容器内容窗格的背景色,或者设置覆盖它的
JComponent
(例如JPanel
)
如您所见,中间区域的颜色为深蓝色。除非您有一些示例代码,否则无法回答此问题。您尝试了什么?编辑:更新以包含一些布局code@tleCan,您应该编辑您的标记以包含“swing”。@t您想更改灰色区域的颜色吗?如果是这样的话,那与你的
JPanel
s的边界无关。完美就是这样!谢谢这样做有什么区别?挫折。。。在JFrame和这个.getContentPane().setBackground上…?显然一个小时内都不会让我看到。不过我会回来检查的。再次感谢。可惜这不起作用。占据jframe的所有三个JPanel都已经设置了它们的背景色。它工作得很好,但仍然显示灰色splitters@tleCan,即使您使用frame.getContentPane().setBackground(color.BLUE.darker())
设置了JFrame
的背景色,请单击复选标记接受此答案。内容窗格是您看到的灰色区域。它包含所有JPanel
实例。
public final class Demo {
private static BufferedImage bi;
public static void main(String[] args){
try {
loadImage();
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
createAndShowGUI();
}
});
} catch (IOException e) {
// handle exception
}
}
private static void loadImage() throws IOException{
bi = ImageIO.read(Demo.class.getResource("../resources/whitefro1.jpg"));
}
private static void createAndShowGUI(){
final JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JPanel panel = new JPanel();
panel.setBackground(Color.BLUE.darker()); // here
final JLabel labelOne = new JLabel();
labelOne.setIcon(new ImageIcon(bi));
final JLabel labelTwo = new JLabel();
labelTwo.setIcon(new ImageIcon(bi));
panel.add(labelOne);
panel.add(labelTwo);
frame.add(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}