如何使String在其他类中可用

时间:2019-03-24 02:01:32

标签: java string class

我设法将输入变成一个字符串,该字符串可在同一类中使用,但我想这样做,以便输入字符串可在不同的类中使用。当前类是OpenDetails,我希望字符串selectedFile在另一个名为OpenFileInfo的类中可用。我将如何设置它,以便selectedFile的结果可以存储在selectedRequirement中,或使其在其他类中可用?

我是Java的新手,所以如果有人可以帮助您,谢谢您。

import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;

public class OpenFile
{
    String selectedRequirement = "";

    public static void main(String a[])
    {

    JFrame parent = new JFrame();
    String selectedFile;
    selectedFile = JOptionPane.showInputDialog(parent, "Add a new module");


    if(selectedFile.equalsIgnoreCase(selectedFile)){
    //Makes the user input case insensitive
    }

        final JTextArea edit = new JTextArea(60,100);

        JButton read = new JButton("Open "+ selectedFile +".txt");
        read.addActionListener( new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try
                {
                    FileReader reader = new FileReader(selectedFile + ".txt");
                    BufferedReader br = new BufferedReader(reader);
                    edit.read( br, null );
                    br.close();
                    edit.requestFocus();
                }
                catch(Exception e2) { System.out.println(e2); }
            }
        });

        JButton write = new JButton("Save "+ selectedFile + ".txt");
        write.addActionListener( new ActionListener()
        {
            public void actionPerformed(ActionEvent e)
            {
                try
                {
                    FileWriter writer = new FileWriter(selectedFile + ".txt");
                    BufferedWriter bw = new BufferedWriter( writer );
                    edit.write( bw );
                    bw.close();
                    edit.setText("");
                    edit.requestFocus();
                }
                catch(Exception e2) {}
            }
        });
                System.out.println("Module: " + selectedFile);

        JFrame frame = new JFrame("Requirements");
        frame.getContentPane().add( new JScrollPane(edit), BorderLayout.NORTH );
        frame.getContentPane().add(read, BorderLayout.WEST);
        frame.getContentPane().add(write, BorderLayout.EAST);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setLocationRelativeTo( null );
        frame.setVisible(true);
    } 
}

1 个答案:

答案 0 :(得分:1)

从静态上下文运行时,需要将selectedRequirement定义为静态:

private static String selectedRequirement = "";

要使selectedRequirement等于selectedFile,只需在主函数的末尾(也许是您已经打印过的地方)说selectedRequirement = selectedFile;

要使selectedRequirement对其他类可用,您需要在OpenFIle类(在主函数之外)中创建一个“ getter函数”,例如:

public String getSelectedRequirement(){
    return selectedRequirement;
}

正如评论中指出的那样,对于您(或将来会发现此问题的任何人)来说,最好先了解一下tutorials的吸气剂,设置器和通用封装。

相关问题