java插入背景图片问题_java程序中如何插入背景图片

展开全部

我们继承(扩展一个 JPanel / JFrame) 之类的e5a48de588b662616964757a686964616f31333335326261组件,覆盖它的 paintComponent(Graphics g) 方法,因为 Swing 为了支持 Look and Fee (皮肤效果),把这些绘图操作委托给了某某UI,基本上每个组件都有一个对应的UI 的不同版本,比如 Windows XP 和 Windows Classic 经典样式,还有 Linux 上经典金属质感的样式。我们如果只是替换背景图,不需要弄个UI,就直接用 paintComponent 方法来做。

例如:

下面是 ComponentUI 类的方法,

看下面这个代码,当不透明时先涂背景色,然后再来 paint 组件。所以你的操作类似于,先把背景图片缩放到100%,能铺满这个背景,然后先涂背景图,再来涂孩子控件。

至少具体细节,你可以写一个自己的某某UI 类,在 JPanel 上 myPanel.setUI 替换掉之后,我们在这个自己的 UI 类中的方法添加行断点,观察 Swing 在什么时候进来了,根据 Eclipse debug 视图提供的 Thread Stack 可以查看各级的方法名并自动跳到对应的JDK自带的源码中。public void update(Graphics g, JComponent c) {

if (c.isOpaque()) {

g.setColor(c.getBackground());

g.fillRect(0, 0, c.getWidth(),c.getHeight());

}

paint(g, c);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值