Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否在ArrayList中使用引用来调用方法,并更改被引用对象的当前状态?_Java_Reference_Arraylist - Fatal编程技术网

Java 是否在ArrayList中使用引用来调用方法,并更改被引用对象的当前状态?

Java 是否在ArrayList中使用引用来调用方法,并更改被引用对象的当前状态?,java,reference,arraylist,Java,Reference,Arraylist,也许这是不可能的,但我想做的是,同时使用ArrayList动态引用GUI中多个元素的可见性。这些对象是通过另一种方法自己创建的 两个oldScreen.setVisible(假);和oldScreen.setVisible(假);语句会导致错误。我有预感我的想法不会那么成功 这就是我所拥有的,我有什么方法可以做到这一点吗 private void initScreens() { // I create some ArrayLists as "screensets" of sorts and pu

也许这是不可能的,但我想做的是,同时使用ArrayList动态引用GUI中多个元素的可见性。这些对象是通过另一种方法自己创建的

两个oldScreen.setVisible(假);和oldScreen.setVisible(假);语句会导致错误。我有预感我的想法不会那么成功

这就是我所拥有的,我有什么方法可以做到这一点吗

private void initScreens() {
// I create some ArrayLists as "screensets" of sorts and put some GUI elements in there
    ArrayList startScreen = new ArrayList();
    ArrayList lostScreen = new ArrayList();
    ArrayList playScreen = new ArrayList();
    startScreen.add(startB);
    startScreen.add(exitB);

    lostScreen.add(yl1);
    lostScreen.add(yl2);
    lostScreen.add(yl3);
    lostScreen.add(yl4);
    lostScreen.add(yl5);


}
private void changeScreen(ArrayList oldScreen,ArrayList newScreen) {
// now i try to create a handy method to handle the length of the arrays itself, so if
i need to make changes to screens I just add them to there array. They are then easily
displayed, and hidden when told.

    int os = oldScreen.size();
    int ns = newScreen.size();

    for (int i = os; i > 0; i--){
        oldScreen<i>.setVisible(false);
        oldScreen<1>.setVisible(false);
    }
private void initScreens(){
//我创建了一些数组列表作为“屏幕集”,并在其中添加了一些GUI元素
ArrayList startScreen=新的ArrayList();
ArrayList lostScreen=新的ArrayList();
ArrayList playScreen=新建ArrayList();
startScreen.add(startB);
startScreen.add(exitB);
lostScreen.add(yl1);
lostScreen.add(yl2);
lostScreen.add(yl3);
lostScreen.add(yl4);
lostScreen.add(yl5);
}
私有无效更改屏幕(ArrayList oldScreen、ArrayList newScreen){
//现在我尝试创建一个方便的方法来处理数组本身的长度,如果
我需要对屏幕进行更改,我只需将它们添加到那里的数组中,然后就可以轻松地进行更改
显示,并在通知时隐藏。
int os=oldScreen.size();
int ns=newScreen.size();
对于(int i=os;i>0;i--){
oldScreen.setVisible(假);
oldScreen.setVisible(假);
}
这是无效的语法

你在试着写作

oldScreen.get(i)

你也应该使用泛型(
ArrayList
)来避免强制转换。

你的
for
循环也不正确:索引从
0
开始,到
size-1
结束。通常的习惯用法是:
for(int i=0;i
。此外,你的
旧屏幕。get(1)。setVisible(false);
应该在循环之外(或者甚至删除,因为索引包含在循环中!):您不想执行它
size
次!语句导致错误”的确切含义是什么?将
oldScreen
替换为
oldScreen[i]
…是的,我很快就发现我的语法不正确。我真的很讨厌它这么简单,但谢谢!我知道在旧屏幕中引用i then 1是多余的,但这只是说我尝试了两种方法,真的不重要,但无论如何我都包括了它。