【问题标题】:Adding an image to a JPanel background将图像添加到 JPanel 背景
【发布时间】:2011-08-28 06:26:17
【问题描述】:

如何将图像添加到 JPanel 背景。图像不会被缩放或调整大小。谢谢。

【问题讨论】:

  • 并且 JPanel 可以调整大小或不...,对于与 GUI 相关的问题,您的标签将是 Swing + JPanel + Icon/Image/ImageIcon,看起来就像没有阅读教程的空问题,请在此处发布显示您在 JPanel 中放置的 Image/ImageIcon 问题的代码不应调整大小
  • @Preston 谢谢。链接中的示例回答了这个问题。

标签: java swing jpanel image-resizing


【解决方案1】:
/**
 * @author
 *
 */
public class ImagePanel extends JPanel {

    private Image image = null;

    public ImagePanel(String filename) {
        this.image = new ImageIcon(filename).getImage();
    }

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.drawImage(image, 0, 0, image.getWidth(null), image.getHeight(null), null);
    }

    /**
     * @param args
     */
    public static void main(String[] args) {
        ImagePanel panel = new ImagePanel("resources/image.jpg");

        JFrame frame = new JFrame("Frame");
        frame.setSize(800, 600);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.getContentPane().add(panel, BorderLayout.CENTER);
        frame.setVisible(true);
    }
}

【讨论】:

  • 这不会随着调整大小而缩放吗?另请参阅Initial Threads
  • 完美,如果有更多的人会这么短有答案!
【解决方案2】:

您可以覆盖以下方法之一:

JComponent.paint(Graphics g)
JComponent.paintComponent(Graphics g)

【讨论】:

  • 请删除JComponent.paint(Graphics g),在Java6'Swing中绘制的真正错误的方法
猜你喜欢
  • 2013-12-16
  • 2016-02-15
  • 1970-01-01
  • 2012-07-03
  • 2012-04-09
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
相关资源
最近更新 更多