将String传递给另一个类

时间:2015-09-17 12:23:14

标签: java string class

我正在编写一个应用程序,我需要从GUI获取两个String对象到nullObject类。

我对编程比较陌生,我正在努力学习。如果你有任何关于如何做到这一点的提示,我真的很感激!

我的GUI类:

package com.giuly.jsoncreate;

public class GUI {
    private JFrame startFrame;
    private JFrame chkFrame;
    private JFrame osFrame;
    private JFrame appVFrame;

    private JPanel controlPanel;

    private JButton nextPage;
    private JButton cancel;
    private JButton save;

    public GUI() {
        generateGUI();
    }

    public static void main(String[]args) {
        GUI gui = new GUI();
    }

    public void generateGUI() {
        //Creation of the First Frame
        startFrame = new JFrame("JSCON Creator");
        startFrame.setSize(1000, 700);
        startFrame.setLayout(new FlowLayout());
        startFrame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        //Panel Creation
        controlPanel = new JPanel();
        controlPanel.setLayout(new FlowLayout());
        //Button Creation
        cancel = new JButton("Cancel");
        cancel.setSize(100, 100);
        cancel.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });

        nextPage = new JButton("Next");
        nextPage.setSize(100, 100);
        nextPage.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                startFrame.setVisible(false);
                showText();
            }
        });
        startFrame.add(controlPanel);
        startFrame.add(cancel);
        startFrame.add(nextPage);
        startFrame.setVisible(true);
        startFrame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
    }
    public void showText() {
        JFrame textFrame = new JFrame();
        textFrame.setSize(1000, 700);
        textFrame.setTitle("Text");
        textFrame.addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        JPanel textPanel = new JPanel();

        JLabel titleLabel = new JLabel("Title");
        textPanel.add(titleLabel);
        JLabel descrLabel = new JLabel("Description");

        JTextField tfTitle = new JTextField("",15);
        tfTitle.setForeground(Color.BLACK);
        tfTitle.setBackground(Color.WHITE);

        JTextField tfDescr = new JTextField("",30);
        tfDescr.setForeground(Color.BLACK);
        tfDescr.setBackground(Color.WHITE);

        textPanel.add(tfTitle);

        textPanel.add(descrLabel);
        textPanel.add(tfDescr);

        JButton buttonOK = new JButton("OK");
        textPanel.add(buttonOK);
        buttonOK.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String jsonTitle = tfTitle.getText();
                String jsonDescr = tfDescr.getText();
                System.exit(0);
            }
        });
        textFrame.add(textPanel);
        textFrame.setVisible(true);
}

我希望将字符串jsonTitlejsonDescr放到另一个类中,这样我就可以存储它们。最后我将有一些字符串,我需要将它们保存在JSON文件中。我需要一种方法来获得这两个字符串,你们有什么建议吗?

2 个答案:

答案 0 :(得分:1)

Erick对他的回答是正确的。只是想我应该添加其他信息。如果您使用jstonTitle声明jsonDescrprivate与其他字段一样,您仍然无法从其他类访问这些字段。编写字段的getter以及在GUI顶部声明它们应该可以解决您的问题。然后在您的其他类中创建GUI的实例并调用该方法。

public String getJsonTitle(){
    return this.jsonTitle;
}

答案 1 :(得分:0)

您在jstonTitle方法中声明jsonDescractionPerformed()。这意味着只要actionPerformed()退出,您就会丢失这些变量。您需要在封闭的上下文中声明它们。例如,您可以在GUI类上创建它们。仍然在actionPerformed()中分配它们,但在GUI的顶部声明startFramechkFrame等等。

这样您就可以在GUI内的任何位置访问这些值。

哦,BTW,摆脱System.exit(0);。 (你真的试过运行你的程序吗?)

相关问题