我想要這樣做,如果我點擊btn_check,錯誤消息將出現在txt_msg(JTExtArea)上。我已經使用命令行完成了這段代碼,它工作。這只是我想在我的GUI中應用它。如何從主類調用textArea以便我可以在另一個類中使用它?
這是我的主類
public void actionPerformed(ActionEvent e) {
Object click = e.getSource();
if (click == btn_check){
BufferedReader br = null;
try {
String line;
br = new BufferedReader(new FileReader(txt_file.getText()));
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
} // end while in try
String everything = sb.toString();
} catch (IOException error) {
error.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
} //end try - catch - finally
File filename = new File(txt_area.getText());
try {
txt_msg.setText("Yes in Main");
// Scan file - read tokens
Scanner scanner = new Scanner(new UnicodeEscapes(new FileReader(filename)));
// Parse the file
parser parser = new parser(scanner);
parser.parse();
parser p = new parser(txt_msg); //this is where I want to pass my text area to parser class
} catch (Exception err) {
syntax_err = true;
}
}
}
這是我的分析器類
JTextArea new_txt_msg;
public parser(JTextArea a) {
new_txt_msg = a;
}
public void report_error(String message, Object info) {
StringBuffer m = new StringBuffer("Error ");
if (info instanceof java_cup.runtime.Symbol)
m.append("("+info.toString()+")");
m.append(" : "+message);
System.out.println(m); //m holds the error message
}
我試着使用new_txt_msg.setText(m.toString())
,但沒有奏效。
我想這應該和'mainclass.JTextArea.getText()'一樣簡單,但如果不是,你需要一個' setter'和一個'getter'。 –