java - 将背景图像添加到面板

标签 java image swing jpanel paintcomponent

我有一个JPanel,我想添加一个图像作为它的背景。我该怎么做?

frame = new JFrame("Some frame");
panel1 = new JPanel();
panel1.setBorder(new EmptyBorder(5, 5, 5, 5));
// NEED TO ADD AN IMAGE TO THIS PANEL

panel1.setLayout(cardlayout);
frame.getContentPane().add(panel1);

frame.setLocationByPlatform(true);
frame.setVisible(true);

我需要将图像添加到面板,我该怎么做?

更新 1

    panel1 = new JPanel()
    {
    private static final long serialVersionUID = 1L;

    @Override
    public void paintComponent(Graphics g)
    {

        g.drawImage(Toolkit.getDefaultToolkit().createImage("1.jpg"), 0, 0, null);
    }
};

最佳答案

您需要覆盖方法paintComponent(Graphics g)JPanel并使用 drawImage()Graphics 上对象 gthis example .


此外,通过 @trashgod 检查这两个示例:

  1. example .
  2. example .

关于java - 将背景图像添加到面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13791984/

相关文章:

java - 改造同步调用异步调用

java - 用于高亮异常图像像素的 Swing 组件

Java 从文件读取/写入 BufferedImage 性能与内存的比较

java - 为什么 JFrame、JDialog、JApplet(来自 JRootPane)是重量级的

java - 如何在 Java Swing 中创建以下 GUI?

java - 如何使 TreeSelectionListener 作为 JEditorPane 上的 Hyperlinklistener 工作?

java - 将 ID 保存到资源文件时出现问题

java - 尝试使用 java/android 从 url 流获取元数据时出错

java - 部署 javaFx 应用程序

image - 将图像保存在完整路径中