我想获取ExpandBar里面变量focusItem的值,focusItem是ExpandBar的公共变量,但不是public的我的代码,当然这是错的
public class MyExpandBar extends ExpandBar {
ExpandItem focusItem;
public MyExpandBar(Composite parent, int style) {
super(parent, style);
}
public ExpandItem getFocusItem(){
return focusItem;
}
}ExpandBar部分源代码如下
public class ExpandBar extends Composite {
ExpandItem[] items;
int itemCount;
ExpandItem focusItem;
int spacing;
int yCurrentScroll;
int hFont;
public ExpandBar (Composite parent, int style) {
super (parent, checkStyle (style));
}
...
}
public class MyExpandBar extends ExpandBar {
ExpandItem focusItem;
public MyExpandBar(Composite parent, int style) {
super(parent, style);
}
public ExpandItem getFocusItem(){
return focusItem;
}
}ExpandBar部分源代码如下
public class ExpandBar extends Composite {
ExpandItem[] items;
int itemCount;
ExpandItem focusItem;
int spacing;
int yCurrentScroll;
int hFont;
public ExpandBar (Composite parent, int style) {
super (parent, checkStyle (style));
}
...
}
他不是定义成public,我怎么用?
public class ExpandBar extends Composite {
ExpandItem[] items;
int itemCount;
ExpandItem focusItem;
int spacing;
int yCurrentScroll;
int hFont;
在MyExpandBar里
public ExpandItem getFocusItem(){
//如果focusItem的初始化不是在ExpandBar的构造方法里,先调用为focusItem初始化的方法(必须非private)
return focusItem;
}
删掉MyExpandBar里面的ExpandItem focusItem;就报错
给它赋值的方法都不是public的,例如下面这种我看不懂的函数...LRESULT WM_LBUTTONDOWN (int wParam, int lParam) {
LRESULT result = super.WM_LBUTTONDOWN (wParam, lParam);
if (result == LRESULT.ZERO) return result;
int x = (short) (lParam & 0xFFFF);
int y = (short) (lParam >> 16);
for (int i = 0; i < itemCount; i++) {
ExpandItem item = items[i];
boolean hover = item.isHover (x, y);
if (hover && focusItem != item) {
focusItem.redraw (true);
focusItem = item;
focusItem.redraw (true);
forceFocus ();
break;
}
}
return result;
}