Swing: не отображается изображение во фрейме - Java
Формулировка задачи:
Доброго времени суток. Изучаю Java по книге "Java. Библиотека профессионала. Том 1" Авторы: Кей С. Хорстманн, Гари Корнелл.
Есть в книге такой пример (стр. 355):
Программа должна могократно выводить изображение в окне, чего не происходит. Это уже второй пример который у меня выполняется некорректно. Предыдущий был с иконкой в строке заголовка - иконка остовалась стандартной.
Почему код из книги не работает и какие причины могут быть? Заренее спасибо.
import java.awt.*;
import javax.swing.*;
public class ImageDemo
{
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.setTitle("Image Demo");
}
});
}
}
class ImageFrame extends JFrame
{
public ImageFrame()
{
add(new ImageComponent());
pack();
}
}
class ImageComponent extends JComponent
{
private static final int DEFAULT_WIDTH = 300;
private static final int DEFAULT_HEIGHT = 200;
private Image image;
public ImageComponent()
{
image = new ImageIcon("12xp.gif").getImage();
}
public void paintComponent(Graphics g)
{
if (image == null) return;
int imageWidth = image.getWidth(this);
int imageHeight = image.getHeight(this);
g.drawImage(image, 0, 0, null);
for (int i = 0; i * imageWidth <= getWidth(); i++)
for(int j = 0; j * imageHeight <= getHeight(); j++)
if(i+j > 0)
g.copyArea(0, 0, imageWidth, imageHeight, i * imageWidth, j * imageHeight);
}
public Dimension getPreferredSize()
{
return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT);
}
}Решение задачи: «Swing: не отображается изображение во фрейме»
textual
Листинг программы
setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("12_xp.png")));