这就是我的意思:
此课程延伸 JPanel和其他人一样。构造函数有两个参数:控制器和轨道数。你不应该将它们存储在成员变量中所有这些都在构造函数中: 将布局设置为null。 将numTracks SoundNameBox实例存储在成员变量数组中,其中numTracks是轨道数。这意味着你需要有一个循环,每次循环创建一个SoundNameBox实例。曲目编号范围从0到numTracks -1。确保它们之间存在Tracks.GAP_SIZE大小的差距。设置此SoundBank的大小,使其只包含SoundNameBox实例。
我之前必须创建一个类似的类并且它工作正常,但是这个没有显示它应该的框,当我尝试调试它时它说我在分配数组时找不到源成员变量。
这是我的代码:
package view;
import javax.swing.JPanel;
import controller.Controller;
public class SoundBank extends JPanel {
public SoundNameBox[] _track;
public SoundBank(Controller controller, int numTracks) {
setLayout(null);
_track = new SoundNameBox[numTracks];
int y = 0;
for(int i = 0; i < numTracks; i++) {
_track[i] = new SoundNameBox(controller, i);
_track[i].setLocation(0,y);
y = y + Tracks.GAP_SIZE;
}
this.setSize(Tracks.GAP_SIZE*numTracks, Tracks.GAP_SIZE*numTracks);
}
public void setSoundName(int numTrack, String name) {
_track[numTrack].setText(name);
}
}
答案 0 :(得分:1)
实例化后,您还需要add
SoundNameBox
对象JPanel
。
将它放在构造函数的循环
中this.add(_track[i]);
祝你好运