Я сейчас занимаюсь разработкой собственного тральщика.При переопределении метода setTitle у меня возникает следующая проблема:
//InfoDisplayer is inner class of class MenuActionListener
class InfoDisplayer extends JDialog{
JLabel info;
BorderLayout infoBorderLayout = new BorderLayout();
public InfoDisplayer(JFrame ownerFrame){
super(ownerFrame,true); //Always modal is set to be true....
info = new JLabel();
setFocusable(false);
setSize(300,400);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setLayout(infoBorderLayout);
add(info,BorderLayout.SOUTH);
setVisible(true);
}
void setInfo(JLabel info){
this.info = info;
}
public void setTitle(String title){
setTitle(title);
}
}
if ((event.getActionCommand()).equals("HowToPlay")){
InfoDisplayer instructionsDisplay = new InfoDisplayer(gUIManagerFrame);
//gUIManagerFrame is an object of its outer class,MenuActionListener
instructionsDisplay.setTitle("INSTRUCTIONS");
instructionsDisplay.setInfo(new JLabel("<html><h1><B>INSTRUCTIONS</B></h1></html>"));
}
else{// if about is clicked!!
InfoDisplayer aboutDisplay = new InfoDisplayer(gUIManagerFrame);
aboutDisplay.setTitle("MineSweeper v0.1");
aboutDisplay.setInfo(new JLabel("<html><h1><B>MineSweeperv1.0</B></h1> </html>"));
}
}
Метод setTitle и setInfo не работает. Кроме того, метод setTitle создает исключение.
приgraphicalUserInterface.BoardMenuBar $ MenuItemsActionListener $ 1InfoDisplayer.setTitle (GUIManager.java:338) в graphicalUserInterface.BoardMenuBar $ MenuItemsActionListener $ 1InfoDisplayer.setTitle (GUIManager.java:338) в graphicalUserInterface.BoardMenuBar $ MenuItemsActionListener $ 1InfoDisplayer.setTitle (GUIManager.java:338)в graphicalUserInterface.BoardMenuBar $ MenuItemsActionListener $ 1InfoDisplayer.setTitle (GUIManager.java:338) в graphicalUserInterface.BoardMenuBar $ MenuItemsActionListener $ 1InfoDisplayer.setTitle (GUIManager.java:338) в graphicalUserInterface.BoardMenuBar $ MenuItemsActionListener $ 1InfoDisplayer.setTitle (GUIManager.java:338)
Я также хотел бы узнать причину для продолжения исключения Генерация.
РЕДАКТИРОВАТЬ: Извините, я не смотрел на тон рекурсивный вызов.Это моя ошибка.Теперь я исправил это.