1

这些是我的代码当我从文本文件中读取行时,我遇到了标签问题,我可以添加标签“_”,它们等于之前程序道路的单词的大小。我在创建标签时遇到问题,希望您能理解我的问题,如果可以的话,请给我一个解决方案吗?

 public class HangGame extends JFrame {

     JLabel lbl;
    JLabel word ;
    private  String[]myword = new String [20];
   Game() {

}
    void readfile () {
Properties prob = new Properties();

try{

    for(int x=0; x<n; x++){
    }
    }}
    private void initLabelPanel() {
    //craete array of labels the size of the word
        letterHolderPanel = new JPanel();
        int count =0;

//如果你运行我的代码我对这个数组有问题 [myword.length()] 编译器找不到它。

wordToFindLabels = new JLabel[myword.length()];
    //Initiate each labels text         add tp array and to letter holder panel
    for (int i = 0; ih; i++) {JLabel lbl = new JLabel("_");

    letterHolderPanel.add(lbl);
    lbl.setBounds();
    }
    }


}
4

2 回答 2

2

myword是一个数组Strings,而不是一个数组,String因此您需要替换:

wordToFindLabels = new JLabel[myword.length()];

wordToFindLabels = new JLabel[myword.length];

您可以将变量重命名为,例如mywordArray,以避免混淆。

也使用布局管理器而不是使用绝对定位(空布局)。

请参阅:不使用布局管理器(绝对定位)

于 2012-11-13T23:09:57.177 回答
1

长度是属性而不是方法相应地更改代码

wordToFindLabels = new JLabel[myword.length];  

现在你的代码将是



for (int i = 0; i < wordToFindLabels.length; i++) {
String labelValue="";
if(myword[i] != null) {
for (int j = 0; j < myword[i].length(); j++){
  labelValue+="_"
}
}
JLabel lbl = new JLabel(labelValue);
    wordToFindLabels[i] = lbl;

    letterHolderPanel.add(lbl);
    lbl.setBounds(30, 60, 20, 20);
    }

于 2012-11-13T23:10:10.820 回答