Ability to access a Text Area from a different class

class, function, java, swing

Solution

You've got everything in a static method, and that won't allow you to use any of the power of object-oriented programming. Consider creating OOP-compliant classes non-static fields and methods and with public getter and setter methods, and this way other classes can affect the behavior of this class.

Edit You posted:

public class Run{ 
  public static void main(String[] args) { 
    main.Debug.startupDebug(); 
    main.Gui.mainGUI(); 
  } 
}

But what you need to do instead is something like:

public class Run{ 
  public static void main(String[] args) { 
    GUI gui = new GUI();
    Debug debug = new Debug();

     debug.setGui(gui);
     gui.setDebug(debug);

     gui.startGui();
  } 
}

Or something similar. Again avoid using static anything.

Problem

How would i be able to run this function from my main() to build the gui, and then use code from elsewhere to handle the button click and retrieve input from the text field? ``` package main; import javax.swing.*; import java.awt.*; public class Gui { public static void mainGUI() { UIManager.put("swing.boldMetal", Boolean.FALSE); java.net.URL imgApp = ClassLoader.getSystemResource("res/app.png"); JFrame mainWin = new JFrame("jIRC"); mainWin.setSize(1024, 720); mainWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); mainWin.setIconImage(new ImageIcon(imgApp).getImage()); Container panel = mainWin.getContentPane(); panel.setLayout(null); JTextArea inputBox = new JTextArea(); inputBox.setSize(300, 100); inputBox.setLocation(500, 250); JButton sendButton = new JButton(); sendButton.setText("Send"); sendButton.setFont(new Font("Helvetica", Font.ITALIC, 16)); sendButton.setSize(72, 32); sendButton.setLocation(500, 500); panel.add(inputBox); panel.add(sendButton); mainWin.setVisible(true); } } ``` Here's my class with the main function: ``` public class Run{ public static void main(String[] args) { main.Debug.startupDebug(); main.Gui.mainGUI(); } } ``` How would I go about placing some of my code in a non-static field?

Original source

Related problems