【发布时间】:2026-01-19 04:15:02
【问题描述】:
我需要一些 Java 代码方面的帮助。我有 Main 类,其中定义了 GUI 中的所有对象,因此我创建了一个用于将文本附加到 Main 类中的 TextArea 的函数,现在我需要从 Sub 类调用该函数以将文本附加到文本区域。
主类:
public static String newline = System.getProperty("line.separator");
ConsoleDebug debug = new ConsoleDebug();
public void writeTextArea(String string) {
jTextArea2.append(string);
}
子类:
package AppPackage;
import static AppPackage.MainGUI.newline;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.Calendar;
//Debuging console
public class ConsoleDebug {
public java.sql.Timestamp currentTimestamp() {
Calendar calendar = Calendar.getInstance();
java.sql.Timestamp timestamp = new java.sql.Timestamp(calendar.getTime().getTime());
return timestamp;
}
//Message
public void message(String newText) {
logWrite("",newText);
}
//Info message
public void info(String newText) {
logWrite("|INFO| ",newText);
}
//Error message
public void error(String newText) {
logWrite("|ERROR| ",newText);
}
//Critical message
public void critical(String newText) {
logWrite("|CRITICAL| ",newText);
}
//Write to log
private void logWrite(String prefix, String newText) {
writeTextArea("[" + currentTimestamp() + "] " + prefix + newText + newline);
File launcherLog = new File("launcher.log");
if(!launcherLog.exists() || launcherLog.isDirectory()) {
// Stream to write file
FileOutputStream fout;
try
{
// Open an output stream
fout = new FileOutputStream("launcher.log");
// Print a line of text
PrintStream stream = new PrintStream(fout);
stream.println("[" + currentTimestamp() + "] " + prefix + newText);
// Close our output stream
fout.close();
}
// Catches any error conditions
catch (IOException e)
{
System.err.println("Unable to create log file");
}
}
else {
try {
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("launcher.log", true)));
out.println("[" + currentTimestamp() + "] " + prefix + newText);
out.close();
} catch (IOException e) {
//exception handling left as an exercise for the reader
System.err.println("Unable to edit log file");
}
}
}
}
我认为看起来还可以,但是错误
"Can't find symbol writeTextArea(String)"
当我尝试时出现
writeTextArea("[" + currentTimestamp() + "] " + prefix + newText + newline);
来自我的私人 logWrite(String, String) 函数。任何想法为什么会这样做?谢谢!
【问题讨论】: