나는 텍스트 파일을 읽고 쓰는 간단한 GUI 프로그램을 작성했다.파일을 전역으로 선택하려면 어떻게해야합니까?
package MyGUIStuff;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.Scanner;
public class multiWinDemo {
public static void main(String[] args) {
JLabel lbl = new JLabel ("File Name:");
JTextField file = new JTextField (10);
file.setEditable(false);
JButton browse = new JButton ("Browse");
browse.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ext) {
JFileChooser fileChooser = new JFileChooser();
int returnValue = fileChooser.showOpenDialog(null);
if (returnValue == JFileChooser.APPROVE_OPTION) {
File selectedFile = fileChooser.getSelectedFile();
file.setText(selectedFile.getName());
}
}
});
JButton search = new JButton ("Search");
JButton write = new JButton ("Write");
JButton read = new JButton ("Read");
read.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ext) {
BufferedReader br = null;
try {
String currentLine;
br = new BufferedReader(new FileReader(selectedFile.getName()));
while ((currentLine=br.readLine()) != null) {
System.out.println(currentLine);
}
}catch (IOException e){
e.printStackTrace();
}finally {
try {
if (br != null) br.close();
}catch (IOException ex){
ex.printStackTrace();
}
}
}
});
JButton exit = new JButton ("Exit");
exit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ext) {
System.exit(0);
}
});
JPanel blank = new JPanel();
JPanel first = new JPanel();
first.setLayout(new GridLayout(3,0,5,5));
first.add(lbl);
first.add(file);
first.add(browse);
first.add(write);
first.add(search);
first.add(read);
first.add(blank);
first.add(exit);
JPanel rPanel = new JPanel();
JFrame multiWin = new JFrame ("MultiWin");
multiWin.setSize(300,130);
multiWin.setLayout(new CardLayout());
multiWin.setLocationRelativeTo(null);
multiWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
multiWin.setVisible(true);
multiWin.add(first);
}
}
제 질문은 어떻게 19-22 행에서 선택한 파일을 전역으로 만들 수 있습니까? 내 전체 프로그램에서 사용할 수 있도록?
도움을 주시면 대단히 감사하겠습니다. 고맙습니다! : D
일반적으로 전역 변수는 좋지 않습니다. 필요로하는 클래스에 전달해야합니다. – SLaks
무엇을 의미합니까? – shrillhook