Posted by
Wayne Rasband-2 on
Mar 21, 2017; 5:28pm
URL: http://imagej.273.s1.nabble.com/Showing-progress-bar-when-opening-images-tp5018335p5018341.html
> On Mar 21, 2017, at 5:22 AM, Ignacio García González <
[hidden email]> wrote:
>
>> ImageJ automatically displays a progress bar as needed when reading and writing TIFF images and stacks.
>>
>> -wayne
> Thank you for your quick reply. However, my concern is that I cannot see this progress bar when opening the image from another frame, and I do not find the way to do it. I even looked through the source code to try to understand how the ProgressBar works.
You have to open the images in the background using a separate thread, as in the following example.
-wayne
import ij.*;
import ij.process.*;
import ij.gui.*;
import java.awt.*;
import java.awt.event.*;
import ij.plugin.*;
import ij.plugin.frame.PlugInFrame;
import java.io.File;
import java.io.*;
public class Separate_Thread extends PlugInFrame implements ActionListener, Runnable {
static private Button btnOpen=new Button("Open");
public Separate_Thread() {
super("Open file test");
btnOpen.addActionListener(this);
add(btnOpen);
setResizable(false);
pack();
GUI.center(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source==btnOpen) {
Thread thread = new Thread(this, "Open Image");
thread.start();
}
}
public void run() {
ImagePlus imp=IJ.openImage("");
imp.show();
}
}
> The following piece of code opens an image, but the bar is not displayed (running under Windows 10 with 64 bit Java 1.8.0_121). I was opening 200 Mb files, which displayed the progress bar when opening directly from ImageJ.
>
> import ij.*;
> import ij.process.*;
> import ij.gui.*;
> import java.awt.*;
> import java.awt.event.*;
> import ij.plugin.*;
> import ij.plugin.frame.PlugInFrame;
> import java.io.File;
> import java.io.*;
>
> public class Test1_ extends PlugInFrame implements ActionListener {
>
> static private Button btnOpen=new Button("Open");
>
> public Test1_() {
> super("Open file test");
> btnOpen.addActionListener(this);
> add(btnOpen);
> setResizable(false);
> pack();
> GUI.center(this);
> setVisible(true);
> }
>
> public void actionPerformed(ActionEvent e) {
> Object source=e.getSource();
> if (source==btnOpen) {
> ImagePlus imp=IJ.openImage(filename);
> imp.show();
> }
> }
> }
>
> Greetings,
>
> Ignacio.
--
ImageJ mailing list:
http://imagej.nih.gov/ij/list.html