문제

C# 컨트롤에 Java Control (SWT, Swing, ...)을 넣을 수 있습니까?

웹 컨트롤에서는 가능하다는 것을 알고 있지만 이런 방식이 마음에 들지 않습니다.

도움이 되었습니까?

해결책

나는 IKVM이 현재 APT 어셈블리에서 충분히 지원하지 않는 것처럼 보인다. 나는 당신이 필요로하는 일을하는 유일한 방법은 숨겨진 기본 창과 함께 별도의 프로세스 내에서 Java 컨트롤을 실행하고 해당 제어의 핸들을 C# 응용 프로그램에 전달하는 것입니다.


원래 답변 :

당신이 단지 "추가"할 수 있는지 확실하지 않지만이 방향을 시도 할 수 있습니다.

Java 클래스를 IKVM을 통해 .NET 어셈블리로 변환해야합니다.

  1. 우선 Java Control을 처리해야합니다. 당신은 볼 수 있습니다 이 게시물 이 작업을 수행하는 방법에 대한 정보가 필요한 경우. IKVM 라이브러리에서 win32drawingsurface와 drawingsurfaces를 찾지 못했기 때문에이 단계에서 실패했습니다. 아마도 Java 측에서 정적 gethandle () 메소드를 만들기에 충분할 것입니다.

  2. 부모 C# 컨트롤을 처리하십시오. 컨트롤에 핸들 특성이 있기 때문에 간단합니다.

  3. 두 핸들을 모두 얻은 후에는 부모 중 하나를 다른 부모에게 설정할 수 있습니다. 이렇게하려면 Winapi에서 SetParent 함수를 호출해야합니다.

    dllimport ( "user32.dll")] private static extern intptr setparent (intptr hwndchild, intptr hwndnewparent);

다른 팁

나는 예를 썼다 :
-.net Gui에 Java 구성 요소가 포함되어 있습니다.
-.net winform 구성 요소가 Java Gui에 포함됩니다.
제품에서 찾을 수 있습니다.

http://www.simtel.net/product.php@Id ]95126=Simtel.net
http://www.simtel.net/product.php@Id] 98653=Simtel.net

Jnbridge를 사용하여 수행 할 수 있습니다.

http://www.jnbridge.com/jnbp-examples.htm#jinn

확인하십시오 IKVM 프로젝트. Java 및 .NET 상호 운용성을 허용하는 .NET에서 구현 된 Java 가상 머신입니다.

정확히 얼마나 완전한 지 확실하지 않으며 기능이 가능하다면 필요하지만 볼 가치가 있습니다.

컨트롤이 사용자 정의 컨트롤이 아니고 스윙중인 경우 Microsoft의 Visual J# (버전 2.0 또는 1.1의 보충 추가 기능을 사용할 수 있습니다.http://msdn.microsoft.com/en-us/vjsharp/bb188695.aspx)

J# 스윙 컨트롤은 WinForms 앱에서 직접 드롭을 재생하지 않으므로 간단한 J# 양식 (양식의 위치에 숨겨진 숨겨진 j# 컨트롤에서 이미지를 복사하도록 모든 그림을 위임하는 호스트 컨트롤을 제공해야 할 수도 있습니다. 뷰 영역은 호스트 컨트롤의 뷰 영역과 일치하도록 크기가 크게 높아집니다. 적어도 별도의 프로세스에 대한 필요성이 제거됩니다.이 사용법은 몇 가지 제한 사항이 있습니다. 그것).

J#은 공식적으로 죽어 가고 있으며 (더 이상 심각한 유지 보수는 없음) 2015 년에 공식적으로 전혀 지원하지 않을 것입니다. 장기적으로 상당한 고통을 일으키기 위해이를 사용하지만 실제로 일부가 필요한 경우 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top