我在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);
}
答案 0 :(得分:3)
新的JFrame的创建被硬编码到ImageJ' ImagePlus
类中:
if (stackSize>1)
win = new StackWindow(this);
else
win = new ImageWindow(this);
如果要调整GUI,可以扩展ImageWindow
或StackWindow
类。请参阅Trainable Weka Segmentation插件以获取一个很好的示例。