Прежде чем вы скажете, что этот вопрос был задан, я знаю, и я прочитал здесь 4 или 5 таких же вопросов, но ни один не помог.
Я пытался использовать getdocumnetbase, getcodebase, буферизованные изображения по сравнению с просто изображениями, и все, с чем я сталкивался до сих пор.Ничто не помогает моей ситуации.
Моя проблема в том, что при запуске апплета изображение не отображается.Я добавил кнопку к апплету, чтобы увидеть, отображается ли он, но на самом деле это не так, если я не наведу на него курсор или не изменим размер окна.
единственное, что сейчас делает приложение, - это показывает изображение и кнопку, ноэто не работает.Итак, я заблудился.
Вот код:
public void init() {
JPanel panel = new JPanel()
{
public void paintComponent(Graphics g)
{
BufferedImage img = null;
try {
img = ImageIO.read(new File("..\\gifs\\Assembled.jpg"));
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("inside JPanel");
g.drawImage(img, 0, 0, this);
super.paintComponent(g);
}
};
JButton j = new JButton("hi");
panel.add(j);
add(panel);
addMouseListener(this);
repaint();
}
спасибо.
А теперь, когда вы проголосовали за это (и не помогло мне), давайте посмотримесли кто-то действительно может помочь.
public void init () {
JPanel panel = new JPanel(){
public void paintComponent(Graphics g)
{
Image i = null;
try {
i = getImage(new URL(getCodeBase(), "../gifs/Assembled.jpg"));
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("inside JPanel");
g.drawImage(i, 0, 0, this);
//super.paintComponent(g);
}
};
this.setLayout(new BorderLayout());
panel.setSize(500,500);
add(panel, BorderLayout.CENTER);
addMouseListener(this);
//repaint();
}
Я редактировал код, но все равно ничего не работает.Изображение найдено и загружено просто отлично, но оно не отображается, если я не изменю размеры апплета.Другими словами, изображение отображается только тогда, когда оно масштабируется, а не в другое время.Теперь, что вызвало бы это?Да, и это только показывает, если я уберу вызов supper.paintComponent (g);.
Да, и ваши ссылки не помогли увидеть, как я пробовал ответы, прежде чем опубликовать это, чтобы начатьс.