本文介紹了為什么getScaledInstance()不起作用?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!
問題描述
所以,我正在嘗試創(chuàng)建一個壟斷游戲。我正在嘗試將(電路板的)圖像加載到JPanel
。
我首先要將圖像縮放為1024*1024
圖像。
我已經(jīng)將圖像顯示在JPanel
上(這樣文件地址就可以工作了)。
但每當我使用getScaledInstance()
方法時,圖像都不顯示
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.SystemColor;
//a class that represent the board (JFrame) and all of it components
public class Board extends JFrame {
private final int SCALE;
private JPanel panel;
public Board(int scale) {
getContentPane().setBackground(SystemColor.textHighlightText);
// SCALE = scale;
SCALE = 1;
// set up the JFrame
setResizable(false);
setTitle("Monopoly");
// set size to a scale of 1080p
setSize(1920 * SCALE, 1080 * SCALE);
getContentPane().setLayout(null);
panel = new JPanel() {
public void paint(Graphics g) {
Image board = new ImageIcon(
"C:\Users\Standard\Pictures\Work\Monopoly 1.jpg")
.getImage();
board = board.getScaledInstance(1022, 1024, java.awt.Image.SCALE_SMOOTH);
g.drawImage(board, 0, 0, null);
}
};
panel.setBounds(592, 0, 1024, 1024);
getContentPane().add(panel);
}
public static void main(String[] args) {
Board board = new Board(1);
board.setVisible(true);
board.panel.repaint();
}
}
每當我刪除board.getScaledInstance()
代碼行時,圖像都會顯示(雖然沒有縮放),但當我添加代碼行時,圖像根本不顯示。
為什么會發(fā)生這種情況?
推薦答案
您做錯了幾件事:
這篇關(guān)于為什么getScaledInstance()不起作用?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,