Java 使用包装器获取gwt树项上的隐藏信息
我需要知道如何将我自己的对象设置为gwt树元素 我需要看到一个字符串,但同时我必须有一些关于特定树项的其他信息Java 使用包装器获取gwt树项上的隐藏信息,java,gwt,tree,Java,Gwt,Tree,我需要知道如何将我自己的对象设置为gwt树元素 我需要看到一个字符串,但同时我必须有一些关于特定树项的其他信息 谢谢大家。您可以扩展TreeItem并向其添加一些属性,例如: public class MyTreeItemWidget extends TreeItem { private int hiddenValue; public MyTreeItemWidget(String text, int hiddenValue) { setText(text);
谢谢大家。您可以扩展
TreeItem
并向其添加一些属性,例如:
public class MyTreeItemWidget extends TreeItem {
private int hiddenValue;
public MyTreeItemWidget(String text, int hiddenValue) {
setText(text);
this.hiddenValue = hiddenValue;
}
public int getHiddenValue() {
return hiddenValue;
}
}
((MyTreeItemWidget) tree.getSelectedItem()).getHiddenValue()
然后您可以获取TreeItem,例如tree.getSelectedItem()
。要获取附加属性,需要将其强制转换为MyTreeItemWidget
。例如:
public class MyTreeItemWidget extends TreeItem {
private int hiddenValue;
public MyTreeItemWidget(String text, int hiddenValue) {
setText(text);
this.hiddenValue = hiddenValue;
}
public int getHiddenValue() {
return hiddenValue;
}
}
((MyTreeItemWidget) tree.getSelectedItem()).getHiddenValue()
下面是简单的示例代码:
TreeItem root = new TreeItem();
root.setText("root");
for(int i = 0; i < 10; i++) {
MyTreeItemWidget item = new MyTreeItemWidget("Node " + Integer.toString(i), i);
root.addItem(item);
}
final Tree tree = new Tree();
tree.addSelectionHandler(new SelectionHandler<TreeItem>() {
@Override
public void onSelection(SelectionEvent<TreeItem> event) {
Window.alert("Selected value is " + Integer.toString(((MyTreeItemWidget) event.getSelectedItem()).getHiddenValue()));
// -- or --
Window.alert("Selected value is " + Integer.toString(((MyTreeItemWidget) tree.getSelectedItem()).getHiddenValue()));
}
});
tree.addItem(root);
root.setState(true);
TreeItem root=newtreeitem();
root.setText(“根”);
对于(int i=0;i<10;i++){
MyTreeItemWidget项=新的MyTreeItemWidget(“节点”+整数.toString(i),i);
根.附加项(项);
}
最终树=新树();
addSelectionHandler(新的SelectionHandler(){
@凌驾
选举时公共无效(SelectionEvent事件){
Window.alert(“所选值为”+Integer.toString(((MyTreeItemWidget)event.getSelectedItem()).getHiddenValue());
//或者--
Window.alert(“所选值为”+Integer.toString(((MyTreeItemWidget)tree.getSelectedItem()).getHiddenValue());
}
});
树.附加项(根);
root.setState(true);
在
SelectionHandler
中,您可以从事件或树中获取所选的TreeItem
。您可以扩展TreeItem
并向其添加一些属性,例如:
public class MyTreeItemWidget extends TreeItem {
private int hiddenValue;
public MyTreeItemWidget(String text, int hiddenValue) {
setText(text);
this.hiddenValue = hiddenValue;
}
public int getHiddenValue() {
return hiddenValue;
}
}
((MyTreeItemWidget) tree.getSelectedItem()).getHiddenValue()
然后您可以获取TreeItem,例如tree.getSelectedItem()
。要获取附加属性,需要将其强制转换为MyTreeItemWidget
。例如:
public class MyTreeItemWidget extends TreeItem {
private int hiddenValue;
public MyTreeItemWidget(String text, int hiddenValue) {
setText(text);
this.hiddenValue = hiddenValue;
}
public int getHiddenValue() {
return hiddenValue;
}
}
((MyTreeItemWidget) tree.getSelectedItem()).getHiddenValue()
下面是简单的示例代码:
TreeItem root = new TreeItem();
root.setText("root");
for(int i = 0; i < 10; i++) {
MyTreeItemWidget item = new MyTreeItemWidget("Node " + Integer.toString(i), i);
root.addItem(item);
}
final Tree tree = new Tree();
tree.addSelectionHandler(new SelectionHandler<TreeItem>() {
@Override
public void onSelection(SelectionEvent<TreeItem> event) {
Window.alert("Selected value is " + Integer.toString(((MyTreeItemWidget) event.getSelectedItem()).getHiddenValue()));
// -- or --
Window.alert("Selected value is " + Integer.toString(((MyTreeItemWidget) tree.getSelectedItem()).getHiddenValue()));
}
});
tree.addItem(root);
root.setState(true);
TreeItem root=newtreeitem();
root.setText(“根”);
对于(int i=0;i<10;i++){
MyTreeItemWidget项=新的MyTreeItemWidget(“节点”+整数.toString(i),i);
根.附加项(项);
}
最终树=新树();
addSelectionHandler(新的SelectionHandler(){
@凌驾
选举时公共无效(SelectionEvent事件){
Window.alert(“所选值为”+Integer.toString(((MyTreeItemWidget)event.getSelectedItem()).getHiddenValue());
//或者--
Window.alert(“所选值为”+Integer.toString(((MyTreeItemWidget)tree.getSelectedItem()).getHiddenValue());
}
});
树.附加项(根);
root.setState(true);
在
SelectionHandler
中,您可以从事件或树中获取所选的TreeItem
。查看我找不到任何相关文档。我必须实现一些具体的方法吗?怎么用?因为如果我实现了“asWidget”方法,我必须返回一个widget,但是所有的widget对我来说都是无用的。我需要实现我自己的对象,但我仍然不明白如何正确地将其设置为treeitem。我必须实现一些具体的方法吗?怎么用?因为如果我实现了“asWidget”方法,我必须返回一个widget,但是所有的widget对我来说都是无用的。我需要实现我自己的对象,但我仍然不明白如何正确地将其设置为treeitem。我不知道为什么我没有考虑之前的问题。非常感谢。我将尝试soonSorry,但它不起作用…我认为强制转换不起作用。当我单击树的某个节点时,不会出现任何警报窗口。如果我捕获到异常,则会有一些堆栈跟踪元素。例如,我看到在谈论未知对象时出现了一些错误。例如:Unknown.dynamicCast(…)我不知道为什么我没有考虑以前的问题。非常感谢。我将尝试soonSorry,但它不起作用…我认为强制转换不起作用。当我单击树的某个节点时,不会出现任何警报窗口。如果我捕获到异常,则会有一些堆栈跟踪元素。例如,我看到在谈论未知对象时出现了一些错误。例如:Unknown.dynamicCast(…)