/*
* DesktopApplication1.java
*/
package desktopapplication1;
import org.jdesktop.application.Application;
import org.jdesktop.application.SingleFrameApplication;
/**
* The main class of the application.
*/
public class DesktopApplication1 extends SingleFrameApplication {
//Something to hold the new argument
 private static String myargument;
//method to get the argument
 public String getArgument() {
   return DesktopApplication1.myargument
 }
 /**
  * At startup create and show the main frame of the application.
  */
 @Override protected void startup() {
     show(new DesktopApplication1View(this));
 }
 /**
  * This method is to initialize the specified window by injecting resources.
  * Windows shown in our application come fully initialized from the GUI
  * builder, so this additional configuration is not needed.
  */
 @Override protected void configureWindow(java.awt.Window root) {
 }
 /**
  * A convenient static getter for the application instance.
  * @return the instance of DesktopApplication1
  */
 public static DesktopApplication1 getApplication() {
     return Application.getInstance(DesktopApplication1.class);
 }
 /**
  * Main method launching the application.
  */
 public static void main(String[] args) {
   
 DesktopApplication1.myargument = args[0];
 launch(DesktopApplication1.class, args);
 }
}
So you save the argument to a static variable using class reference and create a method to retrieve the value (private static String myargument; and public String getArgument() ) Then from the applications main frame you can now call that method once you have changed the constructor a bit (public DesktopApplication1View(DesktopApplication1 app) ).
/**
* The application's main frame.
*/
public class DesktopApplication1View extends FrameView {
  public DesktopApplication1View(DesktopApplication1 app) {
      super(app);
      //Use the argument
      System.out.println(app.getArgument);
      initComponents();
I know this might not be the optimal solution, but it works. Sometime you just need to create a quick java app without learning the whole language. An app with a basic netbeans guin and some command-line arguments :)
 
You can override the Application.initialize method which has the arguments passed as the argument. This is in the non-static portion of the code and is executed before the startup() method.
ReplyDelete