C#에서 자바 스윙 창을 띄우는 문제 인데요...
C#에서 weka 라는 데이터마이닝 툴의 라이브러리를 포팅해서 데이터마이닝 분석 프로그램 만들고 있습니다
weka 라이브러리가 자바로 작성되어 있어서 초반에 애 좀 먹었따가 이제는 C#에서 잘 적응하면서 쓰고 있는데요
문제는 J48같은 Classification 알고리즘을 적용 시키고 난 뒤
tree를 화면에 뿌릴려고 하는데 문제가 발생했습니다
weka 메뉴얼에 있는 내용으로는
import weka.classifiers.trees.J48;
import weka.core.Instances;
import weka.gui.treevisualizer.PlaceNode2;
import weka.gui.treevisualizer.TreeVisualizer;
import java.awt.BorderLayout;
import javax.swing.JFrame;
...
Instances data = ... // from somewhere
// train classifier, 여기서 알고리즘을 적용하고
J48 cls = new J48();
cls.buildClassifier(data);
// display tree, 이 부분에서 트리를 보여줍니다
TreeVisualizer tv = new TreeVisualizer(null, cls.graph(), new PlaceNode2());
// Jframe 이라는게 java swing 부분 이더라구요...
JFrame jf = new JFrame("Weka Classifier Tree Visualizer: J48");
jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
jf.setSize(800, 600);
jf.getContentPane().setLayout(new BorderLayout());
jf.getContentPane().add(tv, BorderLayout.CENTER);
jf.setVisible(true);
// adjust tree
tv.fitToScreen();
여기까지 해 주면 java swing 창이 나타나면서 그 안에 weka의 TreeVisualizer 함수가 트리를 그려줍니다
하지만 저는 이걸 C# 환경에서 하고 있어서 그런지
실행하면 윈도우 창은 생성되는데 그 안에 그림이 나타나지 않습니다...
소스는 문제가 없어 보이는데
C#에서 자바 스윙창을 띄운다는게 문제가 되는건지... 참조 파일을 빼먹고 로드를 했는지
감이 잡히지 않습니다...
참조한 dll로는 우선 weka 라이브러리를 .net dll로 만들기 위해 IKVM이라는 걸 사용했구요
weka.dll
IKVM.OpenJDK.Core.dll
IKVM.OpenJDK.SwingAWT.dll
IKVM.OpenJDK.text.dll
IKVM.runtime.dll
이렇게 5개 파일을 참조 했습니다
너무 답답해서 질문 올려 봅니다
댓글 달기