Java Swing按钮布局修正:实现0-99从左下到右上排列
修正Java Swing按钮布局:从左下角到右上角排列0-99按钮
当前代码的核心问题是Y坐标的计算逻辑错误,导致按钮排列方向与需求相反,同时整体位置偏移。
问题分析
原代码中Y坐标使用325+25*(i/10):
- 数字越大(i值越大),
i/10的结果越大,Y坐标值也越大,按钮会越靠下,完全违背“从左下角(0)到右上角(99)”的排列逻辑。 - 错误布局中0在左下角,但上方依次是1-9,右侧横向排列10、20等,就是因为行方向的Y轴计算搞反了。
修正后的代码
private void crear() { for (int i = 0; i < 100; i++) { JButton btn_boton = new JButton(String.valueOf(i)); // 关键修正:Y坐标改为325 - 25*(i/10),实现从下往上排列行 btn_boton.setBounds(50 + 55*(i%10), 325 - 25*(i/10), 50, 20); btn_boton.addActionListener(this); ventana.add(btn_boton); } ventana.repaint(); }
修正说明
- X坐标逻辑保留:
50+55*(i%10)确保每行10个按钮,从左到右依次排列,这个逻辑是正确的。 - Y坐标修正:
325 - 25*(i/10)让行号(i/10)越大,Y值越小,按钮位置越靠上:- 0-9(行号0):Y=325,位于最底部行(左下角是0)
- 10-19(行号1):Y=325-25=300,位于上一行
- ...
- 90-99(行号9):Y=325-225=100,位于最顶部行(右上角是99)
- 注意:需要确保窗口
ventana的高度足够(至少345像素以上),避免顶部的按钮被截断。
修正后布局效果
90 91 92 93 94 95 96 97 98 99 80 81 82 83 84 85 86 87 88 89 ... 10 11 12 13 14 15 16 17 18 19 0 1 2 3 4 5 6 7 8 9
内容的提问来源于stack exchange,提问作者ArieesPhantom
相关产品推荐
相关产品推荐

