我想创建16*16的按钮组,这段代码哪里错了?for(;i<16;i++){ for(;j<16;j++){ JButton button=new JButton(letter); System.out.println(i); frame.add(button); } }
时间: 2023-07-15 20:14:17 浏览: 46
你的代码中有两个问题:
1. 变量 `j` 的初始值没有被重置为0,所以第二个循环就不会执行。你可以在第一个循环的开头加上 `j = 0;` 来解决这个问题。
2. 变量 `letter` 没有被更新,每个按钮都会显示相同的内容。你需要为每个按钮设置不同的内容,可以使用一个嵌套的循环来生成不同的字符,例如:
```java
for (int i = 0; i < 16; i++) {
for (int j = 0; j < 16; j++) {
char letter = (char) ('A' + i*16 + j); // 根据行列生成不同的字符
JButton button = new JButton(String.valueOf(letter));
frame.add(button);
}
}
```
这样就会生成一个16x16的按钮组,每个按钮上显示不同的字符。
相关问题
我想创建16*16的按钮组,这段代码哪里错了 int i=0,j=0; char letter='a'; for(;i<16;i++){ for(;j<16;j++){ letter=(char)('a'+i*16+j); JButton button=new JButton(); frame.add(button); } }
你的代码中,问题在于第二个for循环的`j`没有被重置为0。第一个for循环结束后,`j`的值变成了16,第二个for循环就不会再次执行了。因此,你可以将第二个for循环中的`j`初始化为0即可解决这个问题。
以下是修改后的代码:
```
int i=0,j=0;
char letter='a';
for(;i<16;i++){
for(j=0;j<16;j++){
letter=(char)('a'+i*16+j);
JButton button=new JButton();
frame.add(button);
}
}
```
现在,你应该能够成功创建一个16*16的按钮组了。
给我写一段先创造一堆按钮,再让这堆按钮移动坐标排成一排的java代码
当然可以!以下是一段示例代码,用于创建一堆按钮并将它们移动到一行中的不同位置:
```java
import javax.swing.*;
import java.awt.*;
public class ButtonMovementExample {
public static void main(String[] args) {
JFrame frame = new JFrame("Button Movement Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 200);
JPanel panel = new JPanel();
panel.setLayout(null);
int buttonCount = 5; // 按钮数量
int buttonWidth = 80; // 按钮宽度
int buttonHeight = 30; // 按钮高度
int initialX = 50; // 初始 X 坐标
int y = 50; // Y 坐标
for (int i = 0; i < buttonCount; i++) {
JButton button = new JButton("Button " + (i + 1));
button.setBounds(initialX + (buttonWidth + 10) * i, y, buttonWidth, buttonHeight);
panel.add(button);
}
frame.getContentPane().add(panel);
frame.setVisible(true);
}
}
```
这段代码使用了Swing库来创建一个包含多个按钮的窗口。每个按钮的坐标是通过计算得到的,并使用`setBounds()`方法进行设置。你可以根据需要调整按钮数量、尺寸和初始位置。运行代码后,将会显示一个窗口,其中包含了排列成一行的按钮。