ImageJ打开imagePlus窗口作为desktopPane内部的框架

时间:2014-05-07 20:55:47

标签: java imagej

我在ImageJ中遇到了一些问题。基本上设置一个分析和打开图像的桌面窗格。但是当程序打开图像时,它会将其作为单独的JFrame打开。我想成为一个内部JFrame。所以基本上图像在桌面窗格中打开。我尝试了一些事情,比如创建一个内部框架类并将win添加到desktopPane但似乎没有任何工作,它仍然将它作为一个单独的JFrame打开。我想知道是否有人知道如何做到这一点。

这是我的代码(这个函数只是调用.show()来显示图像,打开窗口的实际JFrame的代码在ImageWindow.java中):

public void actionPerformed(ActionEvent arg0) {

// TODO Auto-generated method stub

FileOpener open = new FileOpener(file);     

ImagePlus fopen = open.open(false);

 if(fopen != null){
    BufferedImage openImage = fopen.getBufferedImage();
    new ImagePlus(path,openImage).show(desktop); //This functions displays the image
    ImagePlus newImage = new ImagePlus(path,openImage);
    img = newImage;


 }
 frame.setVisible(false);

}

1 个答案:

答案 0 :(得分:3)

新的JFrame的创建被硬编码到ImageJ' ImagePlus类中:

if (stackSize>1)
    win = new StackWindow(this);
else
    win = new ImageWindow(this);

如果要调整GUI,可以扩展ImageWindowStackWindow类。请参阅Trainable Weka Segmentation插件以获取一个很好的示例。

或者,使用ImageJ2的数据结构,即ImgLib' s ImgPlus。这些设计独立于任何用户界面。