java - Java Swing 中使用索引的 For 循环

标签 java swing loops for-loop graphics

有人可以帮我指出这两个 for 循环之间的区别吗?他们看起来可能在做同样的事情,但事实并非如此。

        for(int i = 0; i < shapes.size() - 1; i++) {
            Graphics2D g2d = (Graphics2D) g;
            shapes.get(i).paint(g2d);
        }

如何编写没有 i(索引)的第一个 for 循环?

        for(Shape shape : shapes) {
            Graphics2D g2d = (Graphics2D) g;
            shape.paint(g2d);
        }

最佳答案

They look like they might be doing the same thing, but they aren't.

第一个循环忽略集合中的最后一个形状,而第二个循环则命中所有项目。要解决第一个问题,请删除 - 1 部分。即更改为:

Graphics2D g2d = (Graphics2D) g;
for(int i = 0; i < shapes.size(); i++) {
    shapes.get(i).paint(g2d);
}

关于java - Java Swing 中使用索引的 For 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40392840/

相关文章:

java - 如何使用 JTextField 值控制计时器动画?

java - 在 Java Swing 应用程序中创建复选框

java - SQL(和 Javax.Persistence.Query.ExecuteQuery)如何将 UPDATE 与 WHERE-IN 和 AND 一起使用

java - 在 weblogic 上共享应用程序类加载器

java - 在Eclipse ide中的java项目中使用ORMLite编译时找不到JdbcConnectionSource

java - 在 JPanel 中动态添加组件

postgresql - 循环postgresql中的计时

Java for 循环没有在我的代码中终止

css - SASS : Generated CSS not optimal with loop

java - 从源 WSO2 身份服务器构建期间出错