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 回答