2009-10-07 2 views
0

우리는 물리 응용 프로그램을 디자인하고 있으며 Java로 작성하고 싶습니다. 또한 root (root는 C++에서 작성했습니다)을 사용하려고합니다. Root는 멋진 그래픽 기능을 가지고 있습니다. 아주 멋진 3D 차트를 그릴 수 있으며 Java App에 이러한 차트를 포함시킬 수 있는지 생각 중입니다.Java 구성 요소에 C++ 코드 그리기

C++ 코드를 그리는 방법이 있습니까? 예 : JPanel?

마우스/키보드 이벤트를 다시 전달하는 방법이 있습니까? - 우리는 3D 차트를 회전시키는 것과 같은 몇 가지 상호 작용 기능을 원합니다.

Java 응용 프로그램 (루트에 대해서도) it's here에 많은 C++ 코드 (아무것도 그리는 것과 관련이 없음)를 포함하는 것과 비슷한 질문이 있습니다.

+0

주석으로 남겨 두 겠지만 C++ 코드는 항상 이미지 버퍼 등을 생성 할 수 있습니다. 그런 다음 JPanel에이 코드를 blt 할 수 있습니다. –

+0

내가 처음 생각한 것. 그러나 : 저는 매트가보기 흉한 것처럼 보입니다. (어떤 스케일링이라도있을 것입니다.) 우리는 어떤 상호 작용도하지 않을 것입니다. –

+0

아마 자바 네이티브 api (jni)를 보면 뭔가 유용한 것을 찾을 수 있습니다. – marcosbeirigo

답변

1

SWT는 네이티브 위젯 주위에 상당히 얇은 래퍼로 제작되었으므로 특정 작업에 대해 Swing/AWT보다 쉽게 ​​작업 할 수 있습니다. this particular link은 약간 오래된 것으로 알고 있지만 네이티브 위젯을 빨리 감쌀 수있는 방법을 보여줍니다.

1

질문 자체에 대한 JNI 의견은 앞으로 나아갈 수있는 최선의 방법 인 것으로 보입니다. 나는 당신이 뿌리를 그려 내고 싶지 않다고 생각합니다. Java에서 JNI를 통해 호출되는 인터페이스 코드를 작성해야합니다.이 인터페이스 코드는 'root'에게 주어진 크기로 이미지를 다시 그리도록 요청합니다. 이미지의 크기는 Java 구성 요소 만 알 수 있습니다. 예를 들어, JNI 호출로부터 java 컴포넌트로 단지 32 비트 이미지 데이터로 넘겨 준다.

AWT에서도 Java 구성 요소를 그릴 수 있다고 가정하지 않습니다. 기본적으로 네이티브 구성 요소를 중심으로 자바 래퍼입니다. 드로잉은 대개 네이티브 구성 요소 자체에서 수행됩니다 (Java 코드가 아닌 운영 체제 별).

관련 문제