-1

我是 java 的初学者,我遇到了一个变量连接问题。

我创建了一个海战游戏,我想从一个数组更新前端的所有海上案例。

在 php 上,我们可以使用循环,但不能在 java 上:

for( int i = 0; i< tverite1.length; ++i){
    for( int j = 0; j<tverite1[i].length; ++j){
        button_+i+j.setText("0"); 
    }
}
tverite is an array with each case of the sea
button_x_y buttons are the sea of the front-end

我需要帮助,因为我在网上没有看到一些问题,我不想只为此写 100 行。

4

5 回答 5

4

你不能在java中做到这一点。您应该考虑使用二维数组,例如:

for( int i = 0; i< tverite1.length; ++i){
    for( int j = 0; j<tverite1[i].length; ++j){
        buttons[i][j].setText("0"); 
    }
}
于 2013-09-02T01:03:54.160 回答
2

问题是基本的:Java 不是 PHP 并且不允许变量连接,所以甚至不要考虑它。

答案很简单:只需使用数组或集合,例如 ArrayList。然后,您可以在需要时轻松地遍历您的数组或集合。如果您的问题是您想将对象与字符串相关联,那么请考虑使用不同类型的集合,例如 HashMap 之类的 Map。

于 2013-09-02T00:57:29.250 回答
1

这肯定会回答您的问题:

http://forum.unity3d.com/threads/25316-Can-you-concatenate-variable-names-in-Java

您不能这样做,但您可以尝试在组件之间进行迭代,如下所示。我觉得很棒

于 2013-09-02T16:29:10.700 回答
0

您不能像在 PHP 中那样在 Java 中进行连接。

而不是button_+i+j.setText("0");您需要将按钮作为二维数组。

就像是:button[i][j].setText("0");

于 2013-09-02T04:11:38.273 回答
-2

你不能在 java 上这样做,但你可以在按钮的容器中获取所有项目并以这种方式设置文本“0”。

例如:

public void initializeButtons(Container container) {
    Component[] components = container.getComponents();
    for (Component component : components) {
        //If you're using JButton, if not, change the type. This only asks if the component's
        //type is a button. You could add another clause if the buttons have something else special
        if(!(component instanceof JButton)){ //If the component is not a button we skip it.
            continue;
        }
        ((JButton)component).setText("0");
    }
}

这样,您可以以相同的方式向所有按钮添加其他操作。

于 2013-09-02T01:12:06.673 回答