1. Getting started
- 1.1. Installing Javonet
- 1.2. Activating Javonet
- 1.3. Adding References to .NET Libraries
- 1.4. XML Configuration File
- 1.5. Using the Javonet Fluent Interface
- 1.7. Introduction to Using .NET Back-end and UI Components in Java
2. Calling methods
- 2.1. Invoking Static Methods
- 2.2. Creating Instance and Calling Instance Methods
- 2.3. Calling Generic Methods
3. Working with .NET Objects
- 3.1. Creating Instance Of Generic Object
- 3.2. Extending the .NET Class in Java and Wrapping .NET Methods
4. Fields and Properties
- 4.1. Get/Set Values for Static Fields and Properties
- 4.2. Get/Set Values for Instance Fields and Properties
5. Methods Arguments
- 5.1. Passing Reference-Type Arguments
- 5.2. Passing Arguments by Reference with “ref” and “out” Keywords
- 5.3. Passing typeof(Type) as Method Argument
- 5.4. Calling Overloaded Method Passing Null Argument
6. Nested Types
7. Enums
8. Arrays and Collections
- 8.1. Arrays: Using Value-Type and Reference-Type Arrays
- 8.2. Working with .NET arrays and collections from Java with Javonet
9. Embeding UI controls
10. Referencing libraries
11. Off-line activation
12. Events and Delegates
13. Disposing and Garabage Collection
14. .NET Configuration Files (AppConfig, WebConfig)
15. Exceptions, Debugging and Testing
- 15.. Handling Activation Issues
- 15.1. Handling .NET Exceptions
- 15.2. How to debug .NET code called from Java
- 15.3. Debugging Javonet Enabled Application
16. Strongly-Typed Wrappers
17. Advanced Activation and Licensing
- 17.1. Runtime vs. Offline vs. Compile Time Activation
- 17.2. Project Activation Tool
- 17.6. Delegating Activation Server
18 Other usage scenarios
Overview
With Javonet you can very easily embed any .NET WinForms or WPF user control in Java. Embedded control can be placed within any Java layout component like Panels, Borders, Frames etc… in order to present the control side by side within the Java desktop application.
You can easily fully interact with all the features of .NET UI control invoking any methods, retrieving results or subscribing the events and callbacks which will be triggered when user interacts with .NET control.
The control will automatically move and scale with Java window. The user experience is completely seamless and transparent for end-user. Due to the fact that .NET controls are rendered and executed by .NET framework the performance of the control is native like using regular .NET application.
You can see the sample project in action on this video:
Examples
To embed user control in Java UI you need to wrap the control in NControlContainer class and add to your layout:
//Create new instance of your WPF control NObject userControl = Javonet.New("Javonet.WpfUserControlSample.UserControl1"); //Wrap the control with NControlContainer NControlContainer dotNetUserControl = new NControlContainer(userControl); //Create your layout JPanel panel = new JPanel(); //Add wrapper to your layout panel.add(dotNetUserControl, BorderLayout.EAST); this.add(panel,BorderLayout.CENTER);
In order to subscribe any event expose by the control just reference to the control instance NObject class:
userControl.addEventListener("ButtonClicked", new NEventListener() { public void eventOccurred(Object[] arguments) { //do the event handler work }
Starting 1.4hf34 we have exposed updated revalidate method which allows you to refresh the control layout after programatical changes of layout or control size.
dotNetUserControl.setPreferredSize(new Dimension(200,300)); dotNetUserControl.revalidate();
We are also pleased to provide you more support in direct contact with our engineers at support@javonet.com