如何用for循环批量创建显示1-10文本的JButton?
你的问题出在把变量i当成了字符串字面量——双引号里的"i"会被直接当作普通文本显示,而不是引用循环变量i的数值。另外你的循环从i=0开始,要得到1到10的按钮文本,需要用i+1来调整数值。
修改后的代码如下:
public static void main(String[] args) { JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(500, 500); frame.setLayout(new FlowLayout()); for (int i = 0; i < 10; i++) { // 把循环变量i+1转成字符串作为按钮文本 frame.add(new JButton(String.valueOf(i + 1))); // 也可以用另一种写法:new JButton((i+1) + "") } frame.setVisible(true); }
关键修改点:
- 用
String.valueOf(i+1)将整数i+1转换为字符串,作为按钮的显示文本 - 或者用
(i+1) + ""的方式,利用Java的字符串自动拼接特性转成字符串 - 因为循环从
i=0到i=9,加1后正好得到1到10的数值
内容的提问来源于stack exchange,提问作者ali
相关产品推荐
相关产品推荐

