Frage

Kann habe ich eine Java-Steuerung (SWT, Swing, ...) auf einer C # Kontrolle?

Ich weiß, es mit Web-Kontrollen möglich ist, aber ich mag es nicht, auf diese Weise.

War es hilfreich?

Lösung

habe ich nachgeprüft, dass, sieht aus wie IKVM derzeit nicht genügend Unterstützung hat es in AFT Montage ist. Ich denke, der einzige Weg, zu tun, was Sie brauchen, ist Java-Steuerelement in separaten Prozess ausgeführt mit versteckten Hauptfenster und übergeben Griff, dass diese Kontrolle auf Ihre C # Anwendung irgendwie.


Original Antwort:

Ich bin mir nicht sicher, ob Sie können nur „add“, aber man kann diese Richtung versuchen:

Es wäre notwendig, Java-Klassen zu konvertieren Baugruppen über IKVM auf .NET.

  1. Zu allererst Sie Griff von Java Kontrolle bekommen müssen. Sie können unter diesen Beitrag , wenn Sie Informationen benötigen, wie zu tun diese. Ich scheiterte diesen Schritt an, weil ich nicht Win32DrawingSurface und DrawingSurfaces in IKVM Bibliotheken gefunden habe, vielleicht ist es genug, nur einig statischen getHandle () -Methode auf der Java-Seite zu erstellen.

  2. Erhalten Griff Ihrer Mutter C # Kontrolle. Es ist einfach, da Steuerung seiner Eigenschaft Handle haben.

  3. Nach Erhalt beide Griffe Sie einen der als Elternteil zum anderen einstellen. Um dies zu tun, müssen SetParent Funktion aus der WINAPI nennen.

    [DllImport ( "user32.dll")] private static extern IntPtr SetParent (IntPtr hWndChild, IntPtr hWndNewParent);

Andere Tipps

Ich schrieb Beispiele:
- Java-Komponente in .NET GUI Einbetten
- .NET Windows Forms-Komponente in Java GUI einbetten.
Sie können sie in den Produkten finden:

http://www.simtel.net/product .php [id] 95126 [SiteID] simtel.net
http://www.simtel.net/product .php [id] 98653 [SiteID] simtel.net

Sie können JNBridge verwenden, es zu tun.

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

Schauen Sie sich die IKVM Projekt. Es ist eine Java Virtual Machine in .net implementiert, die Java- und .NET-Interoperabilität ermöglicht.

nicht genau, wie vollständig sie ist, und wenn es die Funktionalität ermöglicht es Ihnen, benötigen buts seinen Wert einen Blick.

Wenn die Steuerung nicht eine individuelle Steuerung und ist nur etwas in Schwung Sie es in Microsoft Visual J # (entweder Version 2.0 oder die ergänzende hinzufügen in 1,1 finden http://msdn.microsoft.com/en-us/vjsharp/bb188695. aspx )

Beachten Sie, dass eine J # Swing-Steuerung wird nicht spielen Ball direkt in einer WinForms-Anwendung fiel gelassen, müssen Sie möglicherweise eine Host-Steuerung schaffen, die Delegierten alle Gemälde zu kopieren das Bild von einer versteckten J # Steuerung innerhalb eines einfachen j # Formulars platziert (auch versteckt wo das Sichtbereich des Formulars der Größe verändert wird, um den Sichtbereich der Host-Steuerung anzupassen. Dies zumindest die Notwendigkeit eines separaten Prozess entfernen würde. hat diese Nutzung einige Einschränkungen, wie ich vermute, dass die Kontrolle, die Sie verwenden mögen komplex ist (oder würden Sie nur haben reimplementiert es).

Beachten Sie, dass J # offiziell (keine ernste Wartung) stirbt und wird Mühe offiziell nicht im Jahr 2015 überhaupt zu unterstützen. Erwarten Sie verwenden es Sie erhebliche Schmerzen auf lange Sicht zu verursachen, aber wenn Sie wirklich einen Teil davon brauchen könnte dies helfen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top