2013-10-19 2 views
0

이미지를 JApplet의 배경으로 설정하고 크기 조정 방법을 사용하여 이미지를 JApplet 배경으로 채 웁니다. 나는 현재 내 크기 조정 방법애플릿의 배경 이미지 및 애플릿의 채우기

Image background; 
public void paint(Graphics g) { 
    super.paint(g); 
    g.drawImage(background, 0, 0, this); 
} 

public void init() { 
    // TODO start asynchronous download of heavy resources 
    background=resize(new ImageIcon(getClass().getResource("/org/me/pd/resources/music.png")),this.getWidth(),this.getHeight()).getImage(); 
    this.setLayout(new GridLayout(6,6)); 
    //Create(); 
} 

을이되어 사용하고

public ImageIcon resize(ImageIcon icon, int width, int height) 
{ 
    BufferedImage converted = new BufferedImage(icon.getIconWidth(), icon.getIconHeight(), BufferedImage.TYPE_INT_ARGB); 
    Graphics g = converted.createGraphics(); 
    icon.paintIcon(null, g, 0,0); 
    g.dispose(); 
    BufferedImage bi = new BufferedImage(width, height, BufferedImage.TRANSLUCENT); 
    Graphics2D g2d = (Graphics2D) bi.createGraphics(); 
    g2d.addRenderingHints(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY)); 
    g2d.drawImage(converted, 0, 0, width, height, null); 
    g2d.dispose(); 
    ImageIcon correct=new ImageIcon(bi); 
    return correct; 
} 

이 애플릿이로드 될 때 초기 작품과 이미지를 채 웁니다 애플릿이 극대화 될 때, 이미지가 함께 극대화하지 않습니다 애플릿. 그것은 최대화되기 전에 어떻게 있었는지 보여줍니다.

내가 뭘 잘못하고 있니?

답변

2

아이콘의 크기를 조절할 필요가 없습니다.

대신 당신은 그림의 방법은 당신을 위해이 작업을 수행 할 수 있습니다 :

g.drawImage(image, 0, 0, getWidth(), getHeight(), this); 

그러나, 애플릿의 paint() 메소드를 재정 의하여이 일을해서는 안된다.

대신 JPanel의 paintComponent() 메서드를 재정의하고 애플릿에 패널을 추가해야합니다. 그런 다음 애플릿의 내용 창이됩니다. 그런 다음 패널의 레이아웃을 BorderLayout으로 설정하여 기본 내용 창과 똑같이 동작하게합니다.

+0

감사합니다. 나는 자바에 대해 아주 익숙하므로 어리석은 일을하는 경향이있다. –