Мне лично нравится простой:
function sleep(seconds){
var waitUntil = new Date().getTime() + seconds*1000;
while(new Date().getTime() < waitUntil) true;
}
then:
sleep(2); // Sleeps for 2 seconds
Я все время использую его для создания времени поддельной загрузки при создании скриптов в P5js
Чтобы создать ImageIcon
из файла изображения в тех же банках, ваш код загружен:
new javax.swing.ImageIcon(getClass().getResource("myimage.jpeg"))
Class.getResource
возвращает URL-адрес ресурса (или null
!). ImageIcon
имеет конструкторы, которые загружаются с URL-адреса.
Чтобы создать URL-адрес ресурса в банке не в вашем «пути к классам», см. документацию для java.net.JarURLConnection
.
В netbeans 8.1 я сделал, чтобы включить папку значков и других изображений, называемых ресурсами внутри папки src в файле проекта. Поэтому всякий раз, когда я создаю Jar-файл, туда входит папка. Дерево файлов должно быть таким:
- src (файлы Java в исходных пакетах здесь)
blockquote> blockquote>
- ** ПАКЕТ, ВЫ НАИМЕНЕНО В ПРОЕКТЕ ** file.java
- Ресурсы image.jpg
Код должен выглядеть следующим образом:
jToggleButton1.setIcon(new javax.swing.ImageIcon(this.getClass().getResource("/resources/image.jpg")));
Это работает для загрузки и установки фонового изображения панели содержимого:
jar (или путь сборки) содержит:
- com
- img
---- bg.png
java содержит:
JFrame f = new JFrame("Testing load resource from jar");
try {
BufferedImage bg = ImageIO.read(getClass().getResource("/img/bg.png"));
f.setContentPane(new ImagePanel(bg));
} catch (IOException e) {
e.printStackTrace();
}
Протестировано и работает как в jar, так и в unjarred (это технический термин).
BTW getClass().getClassLoader().getResourceAsStream("/img/bg.png")
- который я пробовал в первую очередь, возвратил мне null InputStream.
Вы можете попробовать что-то вроде:
InputStream stream = this.getClass().getClassLoader().getResourceAsStream("/images/image.jpg");
В вашем JAR-файле у вас может быть структура каталогов:
MyJAR.jar-com (файлы классов здесь) - images ---- image.jpg
blockquote>
Загрузка изображения из файла Jar во время выполнения такая же, как загрузка изображения при выполнении из IDE, например, netbeans, разница заключается в том, что при загрузке изображения из JAR-файла путь должен быть правильным и его чувствительный к регистру (очень важно). Это работает для меня
image1 = new javax.swing.ImageIcon(getClass().getResource("/Pictures/firstgame/habitat1.jpg")); img = image1.getImage().getScaledInstance(lblhabitat1.getWidth(), lblhabitat1.getHeight(), Image.SCALE_SMOOTH); lblhabitat1.setIcon(new ImageIcon(img));
, если p в «/Pictures/firstgame/habitat1.jpg» в нижнем регистре, он не будет работать. проверки пробелов, случаев и орфографии