2011-08-27 129 views
2

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

+2

复制http://stackoverflow.com/questions/299495/java-swing-how-to-add-an-image-to- a-jpanel – Preston

+1

和JPanel可以调整大小或不... ...,对于GUI相关的问题你的标记将是Swing + JPanel + Icon/Image/ImageIcon,看起来像没有阅读教程的空问题,请在这里发布代码问题与Image/ImageIcon放入JPanel不应该resiziable – mKorbel

+0

@Preston谢谢。链接中的示例回答了问题。 – FadelMS

回答

-1

您可以覆盖这些方法之一:

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

请删除'JComponent.paint(Graphics g)',这是真正错误的方法在Java6中绘画'Swing – mKorbel

2
/** 
* @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); 
    } 
} 
+1

这不会调整大小吗?另请参阅[初始线程](http://download.oracle.com/javase/tutorial/uiswing/concurrency/initial.html)。 – trashgod

+0

完美的,如果只有更多的人将这个短暂的答案! –