java界面的背景图片怎么加,如果把图片加在JLabel上填满面板那怎么样才能再加button?

不能直接把图片加在JPANEL上么,我加了eclipse老说我没定义,还有最大化的时候怎么使背景图片也跟着变大?不好意思,没积分了==... 不能直接把图片加在JPANEL上么,我加了eclipse老说我没定义,还有最大化的时候怎么使背景图片也跟着变大?不好意思,没积分了= = 展开
 我来答
帐号已注销
推荐于2016-11-11 · TA获得超过5622个赞
知道大有可为答主
回答量:1459
采纳率:0%
帮助的人:1376万
展开全部
不知道你怎么加的。加背景图有很多种办法:
- 加一个 JLabel,然后在 JLabel 上添加图片;
- 直接重写 paint 方法,然后用 drawImage(Image src, int x, int y, int width, int height) 方法画上去。

最大化的时候实际上是触发了窗口事件,添加窗口监听器,然后重写 windowResized() 方法,一旦窗口改变大小就重新计算尺寸,并调用 repaint 方法重绘。

================================= 给你一个例子 =================================
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.Image;
import java.awt.event.WindowEvent;

class BackgroundPanel extends JPanel {
private Toolkit tk = Toolkit.getDefaultToolkit();
private Image backgroundImage;
private JButton btnExit = new JButton("Exit");

public BackgroundPanel (String imgFile) {
backgroundImage = tk.createImage(imgFile);
setLayout(null);

btnExit.setBounds(10, 10, 100, 25);
add(btnExit);
}

@Override public void paint (Graphics g) {
g.drawImage(backgroundImage, 0, 0, getWidth(), getHeight(), this);
paintComponents(g);
}
}

class DemoFrame extends JFrame {
public DemoFrame () {
super("Demo");

String fileName = null;
JFileChooser fileChooser = new JFileChooser();
fileChooser.setDialogTitle("请选择一张背景图片");
fileChooser.setFileFilter(new FileNameExtensionFilter("图片文件(*.bmp, *.gif, *.jpg, *.jpeg, *.png)", "bmp", "gif", "jpg", "jpeg", "png"));
if (fileChooser.showOpenDialog(null) == JFileChooser.APPROVE_OPTION) {
fileName = fileChooser.getSelectedFile().getAbsolutePath();
if (fileName == null)
return;
} else
return;

setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(800, 600);
setLocationRelativeTo(null);
setContentPane(new BackgroundPanel(fileName));
setVisible(true);
}
}

public class Demo {
public static void main (String args[]) {
new DemoFrame();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式