2014-05-07 105 views
0

我在ImageJ中有一個文件遇到了一些麻煩。基本上建立一個桌面窗格,分析和打開圖像。但是當程序打開圖像時,它會將其作爲單獨的JFrame打開。我想成爲一個內部的JFrame。所以基本上在桌面窗格中打開圖像。我嘗試了一些東西,比如創建一個內部框架類並將win添加到desktopPane中,但似乎沒有任何效果,它仍將其作爲單獨的JFrame打開。我想知道如果有人知道如何做到這一點。ImageJ打開imagePlus窗口作爲桌面內的一個內部框架平臺

這是我的代碼(該功能只是調用.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); 

} 

回答

3

的創建一個新的JFrame是硬編碼到的ImageJ的ImagePlus類:

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

如果你想以適應GUI,可以延長ImageWindowStackWindow類。請參閱Trainable Weka Segmentation插件以獲取一個很好的示例。

或者,使用ImageJ2的數據結構,即ImgLibImgPlus。這些設計獨立於任何用戶界面。

+0

所以我使用imageJ2文件來構建一個新的imageJ窗口。我對如何解決這個問題有點困惑。 – user3605351

+1

對不起,如果提到ImageJ2造成混亂,這意味着作爲一種替代方法。可以找到一個更直接的例子來與現有的GUI集成,可訓練的Weka分割。我在編輯中添加了一個鏈接到我的答案。 –