gpt4 book ai didi

java - 如何使字符串在其他类中可用

转载 作者:行者123 更新时间:2023-12-02 10:06:16 25 4
gpt4 key购买 nike

我已经设法将输入转换为可在同一类中使用的字符串,但我希望这样做,以便输入字符串可以在不同的类中可用。当前类是 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);
}
}

最佳答案

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

private static String selectedRequirement = "";

要使 selectedRequirement 等于 selectedFile,只需在主函数末尾(可能是您已经打印它的位置)说 selectedRequirement = selectedFile; 即可。

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

public String getSelectedRequirement(){
return selectedRequirement;
}

正如评论中所指出的,对于您(或将来发现此内容的任何人)来说,查看一些 tutorials 是个好主意。关于 getter、setter 和一般封装。

关于java - 如何使字符串在其他类中可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55320099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com