在另一个类中使用String

时间:2013-12-17 14:08:38

标签: java class object user-interface

我正在开发一个有2个课程的程序。第一个是仅用于程序的GUI。另一方面是使用所需数据创建新文件的代码。

我想使用用户在jTextField中写入的文本。但我的问题是,我无法将文本保存在String中,而是在其他类中使用代码保存用户输入。

所以在Class NetworkComponentFrame 中是以下代码:

public class NetworkComponentFrame extends javax.swing.JFrame {
/* GUI Code */
public static void main(String args[]) {
String ID = jTextField1.getText();
/* other code */
}}

在Class NetworkComponent 中,目前是以下代码:

public class NetworkComponent {
public static void New(){
NetworkComponentFrame ID = new NetworkComponentFrame();
/*other code */}}

名称只是一些占位符。我希望这是足以帮助我解决问题的信息。

3 个答案:

答案 0 :(得分:0)

您可以通过创建NetworkComponentFrame类的构造函数NetworkComponent或static属性来传递值。 e.g

public class NetworkComponentFrame extends javax.swing.JFrame {
/* GUI Code */
public String ID;
public static void main(String args[]) {
ID = jTextField1.getText();
/* other code */
}}

在你的第二堂课

public class NetworkComponent {
public static void New(){
s.o.p(NetworkComponentFrame.ID);
/*other code */}}

答案 1 :(得分:0)

我认为你想要反过来。在GUI中实例化NetworkComponent并在NetworkComponent中使用setter方法,并使用文本字段中的文本设置NetworkComponent对象中的文本。

public class NetworkComponent {
    String ID;

    public void setId(String text){
        ID = text;
    }
}

public class NetworkComponentFrame extends javax.swing.JFrame {
    NetworkComponent network = new NetWorkComponent();  <-- NetworkComponent object
    JButton button = new JButton();
    JTextField textField = new JTextField();

    public NetworkComponentFrame(){
        button.addActionListener(new ActionListener(){
            public actionPerformed(ActionEvent e){
                String text = textField.getText();
                network.setId(text);                   <-- set the ID here
            }
        });
    }
}

答案 2 :(得分:0)

如果我理解它是正确的,你可以在main函数中定义String ID,但在NetworkComponentFrame类中定义为public,这样你可以在你从你的类创建一个对象后到达任何你想要的地方。

例如:

public class NetworkComponentFrame extends javax.swing.JFrame {
public String ID_text;
/* GUI Code */
public static void main(String args[]) {
ID_text = jTextField1.getText();
/* other code */
}}


public class NetworkComponent {
public static void New(){
NetworkComponentFrame ID = new NetworkComponentFrame();<
String test = ID.ID_text;
/*other code */}}

您的示例代码存在问题。您确定在非静态对象中调用 public static void main 函数吗?

扩展:U也可以使用getter和setter。