2012-05-24 5 views
1

하나의 프레임을 만들고 프레임에 이미지를 표시했습니다. 프레임 크기를 설정할 수 없습니다. 나는 다음 코드를 시도했지만, 이미지의 일부분을 설정했기 때문에 전체 이미지가 아닙니다. 이미지 크기를 조정 해주세요.java : 이미지의 크기를 조절하는 방법

JFrame frame = new JFrame("My Window"); 
frame.setSize(200,200); 
int frameWidth = 200; 
int frameHeight = 200; 
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
frame.setBounds((int) screenSize.getWidth() - frameWidth, 0, frameWidth, frameHeight); 
frame.pack(); 
frame.setVisible(true); 
+0

다른 매개 변수로 .setSize() 메서드를 사용하려고 했습니까? – Ewald

+0

.setSize (height, width) 메서드 만 시도했습니다. 이것 이외의 다른 방법이 있습니까? – Anjali

+0

전체 응용 프로그램을 게시하는 방법은 어떻습니까? 이미지를 추가하는 방법을 볼 수 있습니다. 우리는 당신을 도울 수있는 뭔가를 발견 할 수있을 것 같습니까? – Ewald

답변

3

당신은 absolute positioninglayout managers의 사용을 혼합한다. setSize() 또는 setBounds()으로 전화하면 절대 레이아웃을 사용합니다. 즉, 구성 요소의 크기와 위치를 수동으로 관리합니다.

pack()으로 전화를 걸면 크기 및 위치를 프레임 안의 구성 요소의 LayoutManager에 위임합니다. LayoutManager의 우선/최소/최대 사이즈 및 제약에 근거 해 컴퍼넌트를 배치 및 사이즈 변경합니다. LayoutManager의 here에 대한 모든 것을보십시오.

다른 플랫폼에서 더 잘 작동하고 코드가 더 깨끗해지기 때문에 LayoutManagers를 사용하는 것이 좋습니다.

3
package test.t100.t004; 

import java.awt.Image; 
import java.net.URL; 

import javax.imageio.ImageIO; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JScrollPane; 
import javax.swing.SwingUtilities; 

public class ImageSizedGUI { 

    ImageSizedGUI(Image image) { 
     JLabel label = new JLabel(new ImageIcon(image)); 

     JFrame f = new JFrame("Image"); 
     f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 
     // either this, or.. 
     f.setContentPane(new JScrollPane(label)); 

     f.pack(); 
     // ..this, but could produce undesirable results for images 
     // that are larger than screen size! 
     // f.setMinimumSize(f.getSize()); 
     f.setLocationByPlatform(true); 
     f.setVisible(true); 
    } 

    public static void main(String[] args) throws Exception { 
     String address = (args.length>0 ? args[0] : 
       "http://pscode.org/media/stromlo2.jpg"); 
     URL url = new URL(address); 
     final Image image = ImageIO.read(url); 
     SwingUtilities.invokeLater(new Runnable(){ 
      public void run() { 
       new ImageSizedGUI(image); 
      } 
     }); 
    } 
} 
관련 문제