プログラムを実行しようとすると、このエラーが継続的に発生します。
Exception in thread "main" java.lang.StackOverflowError
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:244)
at javax.swing.UIDefaults.getUI(UIDefaults.java:752)
at javax.swing.UIManager.getUI(UIManager.java:1001)
at javax.swing.JPanel.updateUI(JPanel.java:109)
at javax.swing.JPanel.<init>(JPanel.java:69)
at javax.swing.JPanel.<init>(JPanel.java:92)
at javax.swing.JPanel.<init>(JPanel.java:100)
at serverProperties.<init>(serverProperties.java:164)
at exportProperties.<init>(exportProperties.java:8)
at serverProperties.<init>(serverProperties.java:162)
特定のクラスからメソッドにアクセスしようとした後にのみ発生します。
これはメインクラスです:
public class serverProperties extends JPanel
{
//Add classes
exportProperties writeProperties = new exportProperties();
//Assume I created the array sent to the exportProperties class
public serverProperties()
{
CheckBoxListener checkListener = new CheckBoxListener();
//Assume I created the check box and added the listener for it
}
private class CheckBoxListener implements ItemListener
{
public void itemStateChanged (ItemEvent event)
{
JCheckBox checkBox;
checkBox= (JCheckBox)event.getSource();
//Process check Boxes
if (checkBox.isSelected())
{
checkBox.setText("Yes");
writeProperties.exportFile(propertiesArr);
}
}
}
}
これは、上記のコードによってアクセスされるクラスのコードです。
public class exportProperties extends serverProperties
{
public void exportProperties(String[] args)
{
exportFile(args);
}
public static void exportFile(String[] propertiesArr)
{
try
{
FileWriter outFile = new FileWriter("Path/file.txt");
BufferedWriter out = new BufferedWriter(outFile);
//Loop through properties
for (int i=0; i < 27; i++)
{
out.append(propertiesArr[i]);
}
//out.write("Test");
out.close();
}
catch (IOException exception)
{
exception.printStackTrace();
}
}
public void importFile()
{
}
}
exportProperties クラスへの呼び出しを削除すると、プログラムは完全に機能します。エラーメッセージで、最後の2行
at exportProperties.<init>(exportProperties.java:8)
at serverProperties.<init>(serverProperties.java:162)
それがちょうど終わる前に、彼らは何度も繰り返します。
私はグーグルで検索しましたが、何が起こっているのかわかりません..助けてくれてありがとう!