对于javaswing,如何访问(x,y)处的元素?

92vpleto  于 2021-07-07  发布在  Java
关注(0)|答案(1)|浏览(288)

假设声明的网格布局:

import java.awt.*;
import javax.swing.*;
import javax.swing.border.Border;

public class Main extends JFrame{
    public static void main(String args[]) {
        JFrame window = new JFrame();
        JButton[] b = new JButton[9];

        for(int i = 0; i < 9; i++) {
            b[i] = new JButton("Button " + i);
            window.add(b[i]);
        }

        window.setLayout(new GridLayout(3, 3));
        window.setVisible(true);
        window.setSize(300, 300);

    }
}

有没有办法访问(x,y)处网格中的元素(在本例中是按钮)?例如:我想访问窗口(1,2),这样它就会得到按钮5。

hpxqektj

hpxqektj1#

我想进入窗口(1,2),这样它就会得到按钮5。
做一些基础数学。
将网格定义为有3列。
所以按钮的索引是:

int index = (row * columns) + column;
JButton button = b[index];

其中行=1,列=2
也:

for(int i = 0; i < 9; i++) {
    b[i] = new JButton("Button " + i);
    window.add(b[i]);
}

window.setLayout(new GridLayout(3, 3));

应先设置布局,然后再将构件添加到面板。
你应该使用 new GridLayout(0, 3) 指定要在3列之后换行。也就是说,无论您向网格中添加多少个组件,都将在3个组件之后换行

相关问题