如何在netbeans gui生成器中设置getter和setter?

问题描述

我正在使用NetBeans IDE和GUI Builder构建一个Java Swing程序。我制作了一个带有文本字段和按钮的小JFrame。用户可以输入一个数字,然后按Enter或按下面的j按钮可以确认该数字。

private void plySetterBtnActionPerformed(java.awt.event.ActionEvent evt) {                                             
    // Todo add your handling code here:
    
    if(evt.getSource() == plySetterBtn) {
        int numberOfPlayers = 0;
    
        try{
            numberOfPlayers = Integer.parseInt(this.playerNumberField.getText());
            dispose();
        } catch(Exception e) {
            JOptionPane.showMessageDialog(this,"Please insert only numeric digits (0-9) \n Note: Spaces will be counted as letters.","Error#094:",JOptionPane.ERROR_MESSAGE);
        }
        
    }
}   

我想通过使用getter和setter在此私有方法之外使用int“ numberOfPlayers”,但这就是我要坚持的地方。 (正如我刚才所说,该代码部分是由NetBeans GUI Builder生成的。)当我尝试在IDE上方的代码中设置一个setter和getter时,显示“表达式的非法开始”

当我尝试通过此代码设置设置器和获取器时,IDE会说int“ numberOfPlayers”不存在。

我做错了什么,我有什么不同?

解决方法

我认为更好的方法是创建一个公共方法来返回所需的值,如下所示:

public class MyFrame extends JFrame implements PlayerGui {
   // ...etc.

   public int getPlayerNumber() {
      return Integer.parseInt(this.playerNumberField.getText());
   }

}

您可能需要按GUI编辑器上的“源”按钮,以便仅添加所需的任意源代码。然后,在类的外部调用此方法。它还有助于建立一个接口,以便您可以更轻松地模拟测试类并将其注入其余代码中。

public interface PlayerGui {
   int getPlayerNumber();
}