Используя пример PhotoScroller от Apple и ImageMagick, мне удалось создать приложение для каталога.
Но у меня ошибка рендеринга. Изображения мозаики визуализируются с тонкой линией между ними.
Мой простой сценарий с использованием ImageMagick таков:
#!/bin/sh
file_list=`ls | grep JPG`
for i in 100 50 25; do
for file in $file_list; do
convert $file -scale ${i}%x -crop 256x256 -set filename:tile "%[fx:page.x/256]_%[fx:page.y/256]" +repage +adjoin "${file%.*}_${i}_%[filename:tile].${file#*.}"
done
done
Код от Apple тот же. Моя функция plot () сложна в вычислительном отношении, она может легко занять пять секунд. Это заставило GUI зависнуть, как и ожидалось. Я добавил код SwingUtilities.invokeLater
, но он все еще зависает. Разве графический интерфейс не должен реагировать сейчас, когда я создаю отдельный поток для вычисления вертикальной нагрузки?
final ActionListener applyListener = new ActionListener()
{
@CommitingFunction
public void actionPerformed(ActionEvent arg0)
{
/*Don't do plotting in the EDT :)*/
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
plot();
}
});
}
};