Я понятия не имею, что здесь происходит, так как я много рисовал здесь, но это сводит меня с ума. Изображение m_background получает только половину отображаемого изображения. Когда я изменяю размер, похоже, что это какой-то компонент, поэтому, когда я приношу нижнюю часть окна, показывается меньше изображений, и когда я его сниму, это показывает больше.ImageIcon, отображается только половина изображения
Это изображение только 600x600, но только около 250 пикселей. Ive попытался удалить все на панели, и это ничего не делает.
package game;
import java.awt.Graphics;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class LudoGameController extends JPanel {
private JFrame m_ludoFrame;
private int m_humanValue;
private int m_computerValue;
private JPanel m_boardPanel;
private ImageIcon m_background = new ImageIcon("images/background.png");
public LudoGameController(JFrame m_ludoFrame, int m_humanValue, int m_computerValue) throws IOException {
this.m_ludoFrame = m_ludoFrame;
this.m_humanValue = m_humanValue;
this.m_computerValue = m_computerValue;
m_ludoFrame.add(this);
m_ludoFrame.setSize(1000, 700);
m_ludoFrame.setVisible(true);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(m_background.getImage(), 0, 0, null);
}
}
Вы спрашиваете: «Почему мой код не работает», но мы застреваем, так как не можем запустить и протестировать ваш код. Лучше всего, если вы могли бы создать и опубликовать [mcve] или лучше [sscce] (http://sscce.org), тот, который использует изображение, доступное для всех онлайн, и которое показывает вашу ошибку непосредственно для нас. –
В качестве побочной рекомендации я бы изменил 'g.drawImage (m_background.getImage(), 0, 0, null);' to 'g.drawImage (m_background.getImage(), 0, 0, this);' –
Я бы также избегал использования ImageIcons, когда я действительно хочу использовать только Image. –