gpt4 book ai didi

java - JFrame 和 JPanel 的背景颜色不同

转载 作者:行者123 更新时间:2023-12-03 02:36:09 29 4
gpt4 key购买 nike

我想在 JFrame 上绘制 JPanel。 JFrame 的背景颜色与 JPanel 的背景颜色不同。到目前为止,这是我的代码:

 import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class DifferentColor extends JFrame{

JPanel p;

GradientColor(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setPreferredSize(new Dimension(500, 500));
this.getContentPane().setBackground(Color.yellow);
p = new JPanel();
p.setPreferredSize(new Dimension(400, 400));
p.setBackground(Color.red);
this.add(p);
this.pack();
this.setVisible(true);
}

public static void main(String[] args) {
// TODO code application logic here
new DifferentColor ();
}
}

当我运行代码时,颜色为红色。不是黄色(JFrame)上的红色(JPanel)。怎么解决?

最佳答案

您的问题是 JPanel 的大小与 JFrame 的大小相同。 Arvind 解释了原因。

以下代码片段会将 JPanel 分配给 North 区域,并在其周围添加粗蓝色边框以进行演示。

public void showFrame() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setPreferredSize(new Dimension(500, 500));
this.getContentPane().setBackground(Color.yellow);
JPanel p = new JPanel();
p.setPreferredSize(new Dimension(400, 400));
p.setBackground(Color.red);
Border border = BorderFactory.createLineBorder(Color.blue, 10);
border.isBorderOpaque();
p.setBorder(border);
this.add(p, BorderLayout.NORTH);
this.pack();
this.setVisible(true);
}

public static void main(String[] args) {
new DifferentColor().showFrame();
}

也可以看看 Swing tutorial about use of panels .

关于java - JFrame 和 JPanel 的背景颜色不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34283749/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com