如何在java程序中插入背景

我们继承(扩展一个JPanel/JFrame)组件,并覆盖它的paintComponent(Graphics g)方法,因为Swing为了支持Look and Fee(皮肤效果),把这些绘制操作委托给了某个UI。基本上每个组件都有不同版本的对应UI,比如Windows XP和Windows Classic的经典风格,Linux的经典金属色风格。如果我们只是替换背景图片,不需要获取UI,可以直接用paintComponent方法。

例如:

以下是ComponentUI类的方法。

看下面的代码,不透明的时候,先画背景色,再画组件。所以你的操作类似于将背景图片缩放到100%来覆盖背景,然后先画背景图片,再画子控件。

至少对于具体细节,你可以自己写个某某UI类。在JPanel上替换myPanel.setUI之后,我们将在这个自己的UI类中的方法中添加行断点,并观察Swing是何时进来的。根据Eclipse debug view提供的线程栈,我们可以查看各个级别的方法名,并自动跳转到相应的JDK自己的源代码中。

公共?作废?更新(图形?g,?JComponent?c)?{

如果?(c.isOpaque())?{

g . set color(c . get background());

g.fillRect(0,?0,?c.getWidth()、c . getheight());

}

油漆(g,?c);

}