我编写了两个for-loops,它们应该填充GridBagLayout。不知怎的,第二个条件不能运作,因此我得到一个例外。Java - 带两个条件的For循环不能按预期方式工作
所以基本上程序的功能是:它从MySQL服务器获取数据并将其列入GridBagLayout中。因此,我通过使用rs.lenght
和rs.getRow()
来获得该行的长度。我把它复制到lenghtCounter
为内部for循环(与x变量)。应该在3个周期后执行内部for循环,或者如果lenghtCounter等于0,我会在控制台中看到计数器工作并按预期下降到0,但for循环不会中断。相反,它会继续并给我一个例外。
下面是代码:
try {
ResultSet rs = MySQL.getStatement().executeQuery(
"select * from obj_house");
rs.last();
int lenghtCounter = rs.getRow();
int lenght = lenghtCounter;
rs.first();
System.out.println(lenghtCounter + " " + (lenght/3));
for (int y = 0; y <= (lenght/3); y++) {
for (int x = 0; x < 3 || lenghtCounter==0; x++) {
System.out.println("ID " + lenghtCounter);
JButton street = new JButton("Strasse: " + rs.getString(5));
gbcOut.gridx = x;
gbcOut.gridy = y;
panelBottom.add(street, gbcOut);
System.out.println("X: " + x);
System.out.println("Y: " + y);
rs.next();
lenghtCounter--;
System.out.println("lenght: " + lenghtCounter);
}
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
你可以更新你的问题与错误stacktrace? –
java.sql.SQLException:结果集结束后 –