I have a Swing GUI, which I build using Netbeans, which up until now used static references to communicate with other classes.
+----------------------+
| MainClass (static) |
|----------------------|
+------+ -DataList +-----+
| | | |
static| +-+--------------+-----+ |static
reference | | |reference
| |new () | new () |
| | | |
| | | |
+-+--------v----+ +--v-----------+--+
| | | |
| SwingGUIClass | | ExecClasses |
| | | |
+--/\-----------+ +-----------------+
|
Input file
(For an overview please see this question) I now want to get rid of the static references and use dependency injection.
public class SwingGUI extends javax.swing.JFrame {
private MainApp ma;
public SwingGUI(MainApp ma) {
this.ma = ma;
} [...]
One point where I struggle is, that the GUI gets started as a Thread, and as such can't have any arguments.
[...]
//still in SwingGUI.class
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new SwingGUI().setVisible(true);
}
});
How can I inject dependencies while not breaking my code? Most of the questions here on SO that deal with that topic are about Guice - which at this point I don't want to use.
Thanks.