私は、リスナの内部でtry/catchブロックに関する質問をしています。私はJTextAreaのテキストを保存するためのパスを与えるJDialogを実装しようとしました。私のコードでは、tryでファイルを保存し、catch部分からのメッセージも持っています。間違ったパスを挿入した場合、キャッチするだけでキャプチャする(メッセージを与える)ように変更する必要はありますか?(Java)actionlistenerの中でtryとcatchを使う方法は?
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class MyFrame extends JFrame{
public MyFrame() {
super("SaveText");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
c.setLayout(new BorderLayout());
c.setPreferredSize(new Dimension(300, 400));
final JTextField tFileName = new JTextField();
final JTextArea tContent = new JTextArea();
JButton bSave = new JButton("Save to File");
JButton bReset = new JButton("Reset Content");
JPanel pFile = new JPanel();
pFile.setLayout(new GridLayout(2, 2));
pFile.add(new JLabel("Content:"));
c.add(pFile, BorderLayout.NORTH);
JPanel pForm = new JPanel();
pForm.setLayout(new GridLayout(1, 1));
pForm.add(tContent);
c.add(pForm, BorderLayout.CENTER);
JPanel pButtons = new JPanel();
pButtons.setLayout(new GridLayout(1, 2));
pButtons.add(bSave);
pButtons.add(bReset);
c.add(pButtons, BorderLayout.SOUTH);
bSave.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
JDialog dialog = new JDialog();
dialog.setTitle("Path");
JButton button= new JButton("Close");
dialog.add(tFileName);
dialog.add(button);
dialog.setSize(300, 100);
dialog.setLayout(new GridLayout(1,1));
dialog.setVisible(true);
tContent.write(new FileWriter(tFileName.getText()));
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
dialog.dispose();
}
});
} catch (IOException ex) {
System.out.println("Not possible to save the file ");
}
}
});
pack();
setVisible(true);
}
public static void main(String[] args) {
MyFrame test=new MyFrame();
}
}
:私は(メッセージを表示します)私のキャッチのみ捕獲するように変更する必要がありますどのような私は間違ったパスを挿入している場合は? – ifly6
この時点で、私は正しいパスまたは間違ったパスを与えるときにコードが動作します。正しいパスでファイルを保存しますが、キャッチはメッセージ(「ファイルを保存できません」)も返します。間違ったパスでメッセージを返すだけです。 Tryパートが動作するときに、何が間違っていなければならないのですか、なぜキャッチメッセージを返すのでしょうか?コードのこの部分で何が間違っていますか? – Babi
「正しい経路でファイルを保存するが、キャッチはメッセージを返す」または「なぜキャッチメッセージを返すのか」という意味を理解していない。 – ifly6