views:

21

answers:

1

I have just started with Gui Programming in netbeans (Using the template Java Desktop Application). However I am already stuck. In my main class I have some methods which can be called from the Gui. These methods do something on an external file and in case of an error they should open up a new window, displaying an error massage.

However I am unable to access member methods of the Gui-Class from my main class, so I can't open the new window. Here is how the netbeans main class (= MyProgrammApp.class), calls the gui-class (MyProgrammView.class).

//MyProgrammApp.class:
public class MyProgrammApp extends SingleFrameApplication {

@Override protected void startup() {
        show(new MyProgrammView(this));
    }

public static void main(String[] args) {
        launch(MyProgrammApp.class, args);
    }

    [...]    
    }

and this is the relevant part of the constructor of the gui class:

//MyProgrammView.class:
public MyProgrammView(SingleFrameApplication app) {
        super(app);

        initComponents();

        [...]
        }

this gui class has a public method showErrorBox, which opens up the window with the error information.

My Problem is, that I don't understand the process with which the instance of the gui is created. I would greatly appreciate it , if someonen could enlighten me, of how i can access the showErrorBox method from the MyProgrammApp.class.

+2  A: 

In this line:

show(new MyProgrammView(this));

You create your frame, and it gets displayed, but you never save the reference to the frame anywhere.

What you need to do is create the app, and save it to a member. Then you can call methods on it.

I'm not sure exactly how Netbeans starts up the application, but you would do something similar to the following:

MyProgrammView view = new MyProgrammView(this)
show(view);

// now you can call methods on view
view.showErrorBox();
jjnguy
Wow, that was a fast answer. It works perfectly. Thanks alot.
ftiaronsem
@~forum You are welcome, glad I could help
jjnguy