0

だから... 私は幸せそうな顔の画像のサイズを変更しようとしています:
ここに画像の説明を入力
フレームには問題なく表示されますが、その一部が表示されていないことに気付きました。私が言いたいのは、サイズを変更したのではなく、切り取っただけだということです。次に、サイズ変更コードをいくつか追加しました (これはいたるところにあり、すべてのサイトでほぼ同じことです)、それが機能しないことがわかりました。

というか、これはわかります。 ここに画像の説明を入力 ここで何が間違っているのですか?ありがとう!

public class RockPaperScissors {

//global resources
final static Dimension SCREEN_SIZE = Toolkit.getDefaultToolkit().getScreenSize();
final static int WIDTH = (int) SCREEN_SIZE.getWidth();
final static int HEIGHT = (int) SCREEN_SIZE.getHeight();
final static ImageIcon RPS_LOGO = new ImageIcon("images/rps.png");


/**
 * @param args
 */
public RockPaperScissors() {

    ImageIcon icon = RPS_LOGO;
    Image img = icon.getImage(); 
    BufferedImage bi = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB); 
    Graphics g = bi.createGraphics(); 
    g.drawImage(img, 0, 0, HEIGHT, HEIGHT, null); 
    ImageIcon newIcon = new ImageIcon(bi);
    JLabel RPS_LOGO_LABEL = new JLabel(newIcon);

    JFrame window = new JFrame();
    window.setName("Rock, Paper, Scissors!");
    window.setSize(WIDTH, HEIGHT);
    window.setVisible(true);
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    Container frameContents = window.getContentPane();
    frameContents.setLayout(null);
    frameContents.add(RPS_LOGO_LABEL);
    Rectangle logo = new Rectangle(0,0,HEIGHT,HEIGHT);
    RPS_LOGO_LABEL.setBounds(logo);

}

public static void main(String args[]) {
    new RockPaperScissors();
}

}
4

1 に答える 1

2

使用getScaledInstance():

Image scaled = image.getScaledInstance(width, height, 5);

このコードは、フレーム全体に合わせて画像をスケーリングする必要があります。

于 2013-04-20T18:37:52.810 に答える