1

「設定ウィンドウ」として機能する JDialog があります。Save-File-Path を選択し、Save という名前のボタンをクリックします。パスを保存し、に表示しますJTextField。私の問題は、「設定」と呼ばれる JDialog を閉じて再度開くとJTextField、最新のパスが表示されないことです。setTextJDialog と関係があり、変数を格納していないと思います。新しいテキストを に保存するにはどうすればよいJTextFieldですか?

これは私のコードの一部です:

public class Settings extends JDialog {

textField = new JTextField("C\\:");
        textField.setBounds(10, 36, 254, 28);
        panel.add(textField);
        textField.setEditable(false);
        textField.setColumns(10);

button.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
              choose= new JFileChooser();
              choose.setCurrentDirectory(new java.io.File("."));
              choose.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

              int rVal = choose.showSaveDialog(Settings.this);
              if (rVal == JFileChooser.APPROVE_OPTION) {
                filename.setText(choose.getSelectedFile().getName());
                dir.setText(choose.getCurrentDirectory().toString());
                File file = choose.getSelectedFile();
               string myline = file.getAbsolutePath();

              }});

sbutton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
             textField.setText(myline);

         }
         });

そのため、 textfield を設定したくありません。JDialog をmyline閉じた後でも、保存して、次に JDialog を開いたときに表示します。

4

3 に答える 3

1

このようにリスナーの外で myline オブジェクトを宣言します

private string myline = "":
public class Settings extends JDialog {
textField = new JTextField("C\\:");
        textField.setBounds(10, 36, 254, 28);
        panel.add(textField);
        textField.setEditable(false);
        textField.setColumns(10);

button.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
              choose= new JFileChooser();
              choose.setCurrentDirectory(new java.io.File("."));
              choose.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

              int rVal = choose.showSaveDialog(Settings.this);
              if (rVal == JFileChooser.APPROVE_OPTION) {
                filename.setText(choose.getSelectedFile().getName());
                dir.setText(choose.getCurrentDirectory().toString());
                File file = choose.getSelectedFile();
                myline = file.getAbsolutePath();

              }});

sbutton.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent e) {
             textField.setText(myline);

         }
         });
于 2011-11-14T12:08:32.413 に答える
1

クラスに設定の値を保存する場合Settingsは、ダイアログを開くときに設定の 1 つのインスタンスを使用し、新しい設定オブジェクトを作成しないことを確認してください。

于 2011-11-14T12:45:26.550 に答える
0

メイン クラスの JFileChooser インスタンス変数を作成して、最後のディレクトリの場所を記憶することができます。セレクターで現在のファイルに基づいてテキスト フィールドを初期化することもできます。

于 2011-11-14T12:34:08.897 に答える