eu estou com um problema que nao sei como resolver, pois o programa estoira
eu tenho duas classes, em que na primeira instancio a segunda e na segunda instancio a primeira
é que eu tenho uma classe chamada jogo e a outra chamada regras
a primeira
final Rules result = new Rules();
final Cards gr = new Cards();
play2a = gr.GameRules2();
play2aa = gr.GameRules3();
ActionListener five = new ActionListener() {
public void actionPerformed(ActionEvent e) {
pn10.setText(result.test());
}
};
a segunda:
[code]public class Rules {
final King rules = new King();
public String test() {
if (rules.play2a > rules.play2aa) {
String result = "Player 1 get all cards";
return result;
} else {
String result_ = "Player two get all cards";
return result_;
}
}
obrigado pela resposta, o main não é nenhum deles, é outra classe a parte que instancia a primeira que eu postei acima (tem muitas mais coisas)
o erro é devido ao facto de eu estar chamando uma à outra e vice versa, pois se eu apagar o final King rules = new King(); o programa deixa de estoirar
Exception in thread "main" java.lang.StackOverflowError
at javax.swing.SwingUtilities.appContextGet(SwingUtilities.java:1862)
at javax.swing.UIManager.getLAFState(UIManager.java:238)
at javax.swing.UIManager.maybeInitialize(UIManager.java:1393)
at javax.swing.UIManager.getDefaults(UIManager.java:644)
at javax.swing.UIManager.getFont(UIManager.java:657)
at javax.swing.LookAndFeel.installColorsAndFont(LookAndFeel.java:207)
at javax.swing.plaf.basic.BasicPanelUI.installDefaults(BasicPanelUI.java:66)
at javax.swing.plaf.basic.BasicPanelUI.installUI(BasicPanelUI.java:56)
at javax.swing.JComponent.setUI(JComponent.java:651)
at javax.swing.JPanel.setUI(JPanel.java:153)
at javax.swing.JPanel.updateUI(JPanel.java:126)
at javax.swing.JPanel.<init>(JPanel.java:86)
at javax.swing.JPanel.<init>(JPanel.java:109)
at javax.swing.JPanel.<init>(JPanel.java:117)
at game.King.<init>(King.java:24)
at game.Rules.<init>(Rules.java:4)
at game.King.<init>(King.java:143)
at game.Rules.<init>(Rules.java:4)
at game.King.<init>(King.java:143)
at game.Rules.<init>(Rules.java:4)
//continua alternando o king com o rules o erro
O erro é mesmo esse. Uma fica criando a outra indefinidamente. O mais provável é que, num dos casos, tenhas de passar a classe que cria como parametro.