How to convert a java swing application to work on android - java

So I built a program in Java using swing for the interface and i didn't realize how difficult it would be to convert it to be used as an android application. Is there any way for me to easily convert or rebuilt the program to be sold in the android market place? If not can anyone point me toward any resources to help build a android.

I did the same thing awhile back. Although there is no program out there that I know of to convert it directly. The Java code and the android code are very similar. Since android doesn't use swing's UI it uses XML based UI. once you get the UI functions of the android app down your Java code can be easily imported.
I am working on converting my Java app into an android app now. Most of my classes imported with no problem.

AjaxSwing allows to convert Swing applications and use them directly on android or ipad, see http://www.creamtec.com/products/ajaxswing/solutions/java_swing_ui_on_ipad.html

What I would do is that I would build the UI in XML, then I give the items an ID and reference to it in Java, and then I'll trigger everything by button clicks so what one button does in your swing layout does the same on android. You can't copy/paste it.

swing UI was meant for desktops and pc's but for
android you have to use Xml then you can keep your java codes as they are in the various activities
then use your event handling skills to trigger them

Open the project's properties
Select Java Build Path
Select Libraries tab
From there you can Add External Jars and you can use swing layout

Related

reusing android code (native Java) in a frame inside web app or desktop app

as per this answer it is possible to reuse android java code inside web app or desktop app frame.
so how its done step by step?
I wonder if there is a special tool to do so.
I don't think there is a complete tutorial, as it's tedious work. The example you linked shows
Android -> Swing conversion. So I will illustrate this with some examples:
If you have a View in your android app, you replace it with JPanel for swing.
If you have a Button, you replace it with JButton
Sometimes elements may look similar, but they do different things, like CardView and CardPane. This complicates things.
There might be android Views that has no matching pair in swing, so you will have to improvise there
But it's not this simple of course. Setting the properties of the views is going to be completely different. Moreover, Android uses XML, while in Swing you have to set everything programmatically.
The only thing common is basically they are both built on Java. So my best advice is that you shouldn't try to "convert" your code. Maybe you can reuse some pure Java parts, but other than that, I suggest you re write the application using the other platforms tools.
you can't use android code in web app or desktop,
first you have to separate the business code from the ui code
the business code can be in a pure java module (completely reusable)
when i speak about business code i mean network calls (using retrofit for example) and any code that is pure java ..
the ui and android specific code (like Views ...) should be rewritten entirely because will not have access to android packages containing views (recycler, layouts...)

Embedding external applications into fxml

I am trying to start an external application (java swing) and them display the java window within another java application. I can start at external application pretty easily but I can't seem to see a way of displaying it with something like a javafx pane.
There is no way you can do so only if the other app is embedded into your code that you have it's source code now you can open it inside your app in the case of swing javafx you can open them in the same app not a big deal I hope this might help you

Droid programming with Eclipse in Java

I have a Neatbeans application, that works well and runs well so I want to move it into Android. So I am taking code snippets and moving it into Eclipse, and into a default made droid class. (which compiles, loads, and displays on the virtual device)
The problem, is that a few things that used to "import" into Netbeans, won't in Eclipse, or I am just doing it wrong, not sure.
Usually in Neatbeans I hit "import such and such class" and then it all compiles fine and no red errors appear in the code. In Eclipse, it is not giving any import option to some features, examples are..
DefaultModelList
HTMLUnitDriver/WebDriver (Selenium's program)
JOptionPane
And I am guessing some more will eventually pop up in the future.
Does Eclipse not support those options or something? Or is it Android that does not support those options?
Can someone tell me how to work around those issues, with their respective problems please?
The program itself is a mobile chat application, that will basically be a mobile version, of a chat that already exists on the web. Pulls chat feed data, lets you post chats back; basically the same thing as the chat on the website, but accessible from your smartphone.
Your problem is not with NetBeans vs. Eclipse. It sounds like your app uses the Java UI Framework Swing, from which you have JOptionPane. Swing is not available under Android, and anything that uses Swing will have to be extensively recoded to use the native Android UI instead.
Your app may use other libraries that aren't available in Android, as well.
Eclipse does support those options (press ctrl-shift-o). The problem is most likely the transition to Android -- lots of items change names. The Android native item to use is not JSpinner but Spinner, etc.
Also: In Android most GUI work is done with layout .xml files, a bit different than plain Java programming.
TLDR: you're conflating multiple issues. Eclipse can even import a Netbeans Project directly.
Is Eclipse a strong requirement for you? If you love NetBeans and everything is working, why not to continue with it? I believe you can develop for Android in NetBeans too...
http://binarywasteland.com/2011/07/install-netbeans-android-sdk/

Netbeans Project Types

I'm building a Java application using NetBeans 7.0. The app is intended for use on Windows, so I guess the tool I'm really making most use of is Java Swing (for the cool, nifty screen elements).
My question relates to NetBeans' process of creating the various project types. The application I'm building is based on the "Java Desktop Application" template (?). My problem is that there seems to be a nice load of bloat built into that, and I can't figure out how to remove most of it without blowing up the app.
As a test, I created a "Java Application"project, but this has the opposite problem -- there's absolutely nothing built into the code, and I can figure out how to add anything. Specifically, a Java Desktop Application project created in NetBeans give me the ability to directly edit the screen layout like in Visual Studio. However, a Java Application does not appear to have this capability, I have no idea how (or even if) this can be addressed.
If I could start with a no-frills Java application, and add some capability to edit its layout and control the function of the screen elements (i.e. make it a windows application, I think), that would be just about perfect.
Does anybody have a suggestion for a minimal, but functional NetBeans application start point??
Thanks,
R.
If you start with a plain Java Application then as you realize you start with a bare bones type application. To add a GUI you can add New>JFRame Form. It adds a class that extends JFrame and Netbeans will recognize that it should open it in the visual editor for you.

Any plugin for c++ editor?

I am developing a standalone java desktop application. In that application I am giving user to create his own c++ file or modify the existing ones...But currently I am using Jtextarea as an editor for editing or creating c++ file. I actually want user to give some IDE like editor(such as in Anjuta) so that it becomes more user friendly. Is it possible to use any plugin in my app for c++ editing and if it is then which and how to use it??
Thanks in advance.
Use the Eclipse framework. It will have more features that you can include in your app then you have time to produce yourself.

Categories

Resources