我是Java Swing的初学者,遇到一个我不知道为什么会发生的问题。 我想在桌面窗格中显示3D图像的多个内部帧,并在另一个线程中执行此操作,因此我使用 SwingWorker 。这些框架在桌面窗格中加载,但也挂在窗口外。
[
图像由VTK呈现,因此我不知道是 SwingWorker 的问题还是重量级/轻量级组件的混合。
以下是swingworker的代码(internalFrameWorker.java)
public class internalFrameWorker extends SwingWorker<Void, ShowPLY>{
private String[] files;
private int x, y;
private DropFilePane parent;
private boolean done;
private ShowPLY plyframe;
// Constructor
public internalFrameWorker(String[] filenames, int posx, int posy, DropFilePane pane) {
this.files = filenames;
this.x = posx;
this.y = posy;
this.parent = pane;
}
@Override
protected Void doInBackground() throws Exception {
for(String fn: files){
plyframe = new ShowPLY(x, y, fn); // ShowPLY outputs a JInternalFrame
plyframe.pack();
plyframe.setVisible(true);
parent.add(plyframe);
x += 20;
y += 20;
}
return null;
}
}
任何帮助将不胜感激! 谢谢!