Java 使用JFileChooser打开文件
作为一个小项目,我认为制作一个文本编辑器会很酷。我目前正忙于打开文件。这是我打开文件的代码(Java 使用JFileChooser打开文件,java,file,swing,jfilechooser,Java,File,Swing,Jfilechooser,作为一个小项目,我认为制作一个文本编辑器会很酷。我目前正忙于打开文件。这是我打开文件的代码(e是一个ActionEvent,open是一个JMenuItem): 试块给我带来了麻烦。Eclipse说类型JMenuItem的getSelectedFile()未定义。对于MenuItems,它似乎也未定义。是否有其他方法可以实现此目的,或者有其他方法可以实现此目的?一旦返回,您需要在上调用getSelectedFile(),因此请将代码更改为: choice.getSelectedFile() 该
e
是一个ActionEvent
,open是一个JMenuItem
):
试块给我带来了麻烦。Eclipse说类型
JMenuItem
的getSelectedFile()
未定义。对于MenuItem
s,它似乎也未定义。是否有其他方法可以实现此目的,或者有其他方法可以实现此目的?一旦返回,您需要在上调用getSelectedFile()
,因此请将代码更改为:
choice.getSelectedFile()
该方法位于JFileChooser:choice.getSelectedFile()上;它应该是
choice.getSelectedFile()代码>还有比JFileChooser更好的吗。如果要使其看起来像是在Microsoft open box中打开的,该怎么办?我建议添加一些描述性文本来解释代码的相关部分。添加说明会很有帮助。请复制代码并运行它。它打开一个文本文件并保存下来。
choice.getSelectedFile()
private void selectfileActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser jFileChooser=new JFileChooser();
StringBuffer buffer;
buffer = new StringBuffer();
int result= jFileChooser.showOpenDialog(this);
if(result==JFileChooser.APPROVE_OPTION)
{
try {
FileReader reader;
reader = null;
JOptionPane.showMessageDialog(this,"hii user clicked open sysytem");
File file=jFileChooser.getSelectedFile();
reader=new FileReader(file);
int i=1;
while(i!=-1)
{
i=reader.read();
char ch=(char) i;
buffer.append(ch);
}
notepad.setText(buffer.toString());
} catch (FileNotFoundException ex) {
Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(MainForm.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
import java.awt.EventQueue;
public class FileChooser extends JFrame
{
private JPanel contentPane;
String filename;
// main
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try
{
FileChooser frame = new FileChooser();
frame.setVisible(true);
} catch (Exception e)
{
e.printStackTrace();
}
}
});
}
public FileChooser()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
// button to selct file
JButton btnNewButton = new JButton("Select file");
btnNewButton.setBounds(10, 2, 89, 23);
contentPane.add(btnNewButton);
// area to display file content
final JTextArea textArea = new JTextArea();
textArea.setBounds(10, 36, 414, 215);
contentPane.add(textArea);
// save button
final JButton btnSave = new JButton("Save");
btnSave.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent arg0)
{
try
{
FileWriter writer = new FileWriter(filename.replace(".",
"_out."));
BufferedWriter bwr = new BufferedWriter(writer);
bwr.write(textArea.getText());
bwr.close();
writer.close();
System.out.println(textArea.getText());
} catch (Exception e)
{
System.out.println("Error");
}
}
});
btnSave.setBounds(283, 2, 89, 23);
contentPane.add(btnSave);
// listen to button clicks
btnNewButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
JFileChooser fileChooser = new JFileChooser();
int returnValue = fileChooser.showOpenDialog(null);
if (returnValue == JFileChooser.APPROVE_OPTION)
{
File selectedFile = fileChooser.getSelectedFile();
filename = selectedFile.getAbsolutePath();
try
{
FileReader reader = new FileReader(filename);
BufferedReader br = new BufferedReader(reader);
textArea.read(br, null);
br.close();
System.out.println(textArea.getText());
} catch (Exception e)
{
System.out.println("Error");
}enter code here
}
}
enter code here
});
}
}