変数の定義と使用に関する素人の質問:
ユーザーの入力を取得してテキスト ファイルに保存する Java GUI を作成する必要があります。ただし、この書き込みは Actionlistener クラス内で行う必要があります (つまり、ユーザーがボタンをクリックすると、テキスト ファイルが作成されて保存されます)。これは、あるクラス (public クラス) で変数を定義し、別のクラス (Actionlistener を定義するクラス) で使用する必要があることを意味します。
これどうやってするの?グローバル変数が唯一の方法ですか?
私のコードでは、最初に 'textfield' を JTextField として定義し、次にそれを ('text' として) 読み取って ('text.txt' に) 保存します。
import javax.swing.*;
//...
import java.io.BufferedWriter;
public class Runcommand33
{
public static void main(String[] args)
{
final JFrame frame = new JFrame("Change Backlight");
// ...
// define frames, panels, buttons and positions
JTextField textfield = new JTextField();textfield.setBounds(35,20,160,30);
panel.add(textfield);
frame.setVisible(true);
button.addActionListener(new ButtonHandler());
}
}
class ButtonHandler implements ActionListener{
public void actionPerformed(ActionEvent event){
String text = textfield.getText();
textfield.setText("");
new BufferedWriter(new FileWriter("text.txt")).write(text).newLine().close();
// Afterwards 'text' is needed to run a command
}
}
コンパイルすると、
Runcommand33.java:45: error: cannot find symbol
String text = textfield.getText();
^
symbol: variable textfield
location: class ButtonHandler
行なしString text = to new BufferedWriterコードはコンパイルされます。
このGet変数の提案を他のクラスで試したことに注意してください。これは 、 別のクラスの関数であるクラスの変数にアクセスするにはどうすればよいですか? しかし、それらは機能しませんでした。
助言がありますか?