【发布时间】:2016-11-05 23:24:36
【问题描述】:
我正在制作一个 JavaFX 表单程序。表单数据使用 ArrayList of Pages 来处理,它们是节点的 ArrayLists,它们是包含 GUI 元素(标签)及其数据成员的对象。
像这样:
主要声明
private final ArrayList<ArrayList<FormNode>> form = new ArrayList<>();
private final ArrayList<FormNode> page = new ArrayList<>();
int currentNode = 0; //index of currently active node
对象类
public class FormNode {
private String nodeName;
private boolean visible;
private boolean editable;
private Label nodeGUI;
//Constructor...Sets...Gets...Methods
}
当节点被初始化时,它被添加到一个窗格并通过一个单独的类分配事件处理程序。我要做的是让程序通过单击与其关联的节点来传达哪个对象处于活动状态,因此可以将其标记为活动节点。
类似这样的东西(不是我的实际代码,只是我需要的伪代码):
用户在 GUI 中点击所需的标签(节点),调用...
nodeGUI.setOnMousePressed(new EventHandler<MouseEvent>() {
@Override public int handle(MouseEvent mouseEvent) {
--- call a method to assign the value ---
currentNode = thisNodesIndex;
}
});
这个想法是返回嵌套页面ArrayList中FormNode对象的索引来分配currentNode那个值。
现在一切正常,但访问索引很麻烦。数据是从标签本身(x、y、高度、宽度等)访问的,但我需要将其识别为对象的成员,以便我可以操作其他属性。 (即nodeName、visible 等)。
有什么想法吗?
【问题讨论】:
标签: java class user-interface arraylist javafx