【发布时间】:2013-05-21 05:36:57
【问题描述】:
我正在使用 JPanel 来模拟正方形。这个想法是在 JPanel 前面放置一种过滤器。
第一个 JPanel 包含一个 ImageIcon 和一个背景颜色。 第二个 JPanel 包含具有透明度的背景颜色,放置在第一个 JPanel 内。
我做到了,但我有一个问题:顶部出现第二个 JPanel 没有覆盖第一个 JPanel 的边距。
编辑:代码 类 JPanelImage 扩展 JPanel
private ImageIcon imageIcon = null;
public void paintComponent(Graphics g)
{
if(imageIcon != null)
{
Image image = imageIcon.getImage();
int height = 30;
int width = 18;
int marginLeft = (this.getWidth()-width) / 2;
int marginTop = (this.getHeight()-height) / 2;
super.paintComponent(g);
g.drawImage(image, marginLeft, marginTop, width, height, this);
}
else
super.paintComponent(g);
}
public void addColoredLayout(Color color) {
JPanelImage upperLayout = new JPanelImage();
upperLayout.setOpaque(true);
upperLayout.setBackground(color);
upperLayout.setPreferredSize(this.getPreferredSize());
this.add(upperLayout);
}
我还有一个 Window 类(扩展 JFrame),它创建一个 JPanel 并应用 addColoredLayout 方法。
【问题讨论】:
-
这可能是布局问题或边框问题。向我们展示一个示例,以便我们确定哪个
-
我现在刚学Java,所以对布局的概念不太了解。因此,这可能是一个边界问题......
标签: java swing jpanel margin layout-manager