我正在尝试正确实现此界面:
public interface OccupancyGrid {
public Grid grid();
}
然后我有一个实现它的类:
public class OccupancyCheckView implements OccupancyGrid{
private Grid myGrid = new Grid(17,17);
@Override
public Grid grid() {
return myGrid;
}
public main_(){
createResultGrid("Test Grid");
//More code below which changes the properties of 'myGrid'
}
然后我有一个试图调用上述界面的类:
public class TestOccupanciesPanel
{
private VerticalPanel mainPanel_;
OccupancyGrid myGrid = new OccupancyCheckView();
//This is where I trip up
mainPanel_.add(myGrid);
我在代码中的其他地方看到我正在非常干净地编辑接口的用户但是没有按照我上面的方式进行操作,它看起来更清晰。代码只是做了类似的事情:
OccupancyCheckView.class
你能帮助我并给我一些提示吗?
答案 0 :(得分:1)
在构造函数中调用createResultGrid
方法:
public OccupancyCheckView() {
myGrid = new Grid(17,17);
createResultGrid("Test Grid");
}
使用这种方法,createResultGrid
方法将在对象创建时执行 - 如果你有一些繁重的代码,它可能会减慢程序。
或使用延迟初始化:
private boolean resultGridCreated = false;
@Override
public Grid grid() {
if(!resultGridCreated) {
createResultGrid("Test Grid");
resultGridCreated = true;
}
return myGrid;
}
使用这种方法,网格初始化将在第一次调用grid()
时完成。