我有一個hangmanframe,welcomeframe和大型機,我想追加在大型機上星(*)當你贏得一個劊子手遊戲的Java的StringBuilder - 追加字符
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();
}
WelcomeFrame:
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()」
此代碼甚至不會編譯:「迴歸」是一個關鍵詞,不能用作大型機上市的方法的名稱。關於另一個問題,我建議遵循良好的面向對象操作規範,並在getter/setter方法中正確地封裝字段。 –
我改變了閱讀'returnMain()'的方法,謝謝 – CodeAddict