【发布时间】:2012-11-23 23:48:14
【问题描述】:
我有一个hangmanframe、welcomeframe 和一个大型机,当你赢得一个hangman 游戏时,我想在大型机上附加星号(*)
HangmanFrame:
public void win(){
JOptionPane.showMessageDialog(null, "Congrats! The word was " + GuessWord);
MainFrame.totalStars.append("*");
MainFrame.totalLabel.setText(MainFrame.stars);
setVisible(false);
MainFrame.hangmanButton.setEnabled(false);
MainFrame.returnMain();
}
主框架:
public static final StringBuilder totalStars = new StringBuilder();
public static String stars = totalStars.toString();
public static void returnMain(){
totalStars.append("* ");
totalLabel.setText(stars);
WelcomeFrame.playButton.doClick();
}
欢迎框:
private void playButtonActionPerformed(java.awt.event.ActionEvent evt) {
String userName = nameText.getText();
// Open MainFrame
MainFrame MFrame = new MainFrame();
MFrame.setVisible(true);
setVisible(false);
MainFrame.welcomeLabel.setText("Welcome " + userName + "!");
MainFrame.totalStars.append("* ");
MainFrame.totalStarsLabel.setText(MainFrame.stars);
}
我有一个标签 (totalLabel),我想在其中添加星号 (*)。但是当该方法在 HangmanFrame 中运行时,它会转到 PlayFrame 但不会添加任何星星。
谁能看出我做错了什么?
已解决:
将方法名称更改为 returnMain()
用“totalStars.toString()”更改了所有“stars”实例
【问题讨论】:
-
此代码甚至无法编译:“return”是关键字,不能用作 MainFrame 列表中的方法名称。在另一个主题上,我建议遵循良好的 OOP 实践并将字段正确封装在 getter/setter 方法中。
-
我把方法改成了
returnMain(),谢谢
标签: java netbeans append stringbuilder