Есть несколько способов, которыми это может быть достигнуто в зависимости от того, что вы хотите...
Ты мог бы...
Сделайте панель содержимого JLabel
, установив для нее значок...
public void init() {
JLabel label = new JLabel(new ImageIcon(getClass().getResource("/path/to/resource")));
setContentPane(label);
setLayout(...);
//...
}
Ты мог бы...
Используйте, например, Graphics
API...
public class BackgroundPane extends JPanel {
private BufferedImage img;
public BackgroundPane() {
try {
img = ImageIO.read(getClass().getResource("/path/to/resource"));
} catch (IOException ex) {
ex.printStackTrace();
}
}
@Override
public Dimension getPreferredSize() {
return img == null ? new Dimension(200, 200) : new Dimension(img.getWidth(), img.getHeight());
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (img != null) {
Graphics2D g2d = (Graphics2D) g.create();
g2d.drawImage(img, 0, 0, this);
g2d.dispose();
}
}
}
Затем вы можете установить его как панель содержимого вашего апплета...
public void init() {
BackgroundPane background = new BackgroundPane();
setContentPane(background);
setLayout(...);
//...
}
Единственная реальная причина для использования чего-то подобного заключается в том, что вы хотите обработать изображение каким-то особым образом, например, его положение, размер, альфа и т. Д.
Все это предполагает, что изображение упаковано в один из JAR-файлов приложения и доступно во время выполнения из контекста пути к классу...
person
MadProgrammer
schedule
31.10.2013