对于 Java Swing,如何访问 (x,y) 处的元素?
For Java Swing, how can I access the element at (x,y)?
假设声明的网格布局:
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) 处网格中的元素(在本例中为按钮)?例如:我想访问 window(1,2) 以便获得按钮 5.
I want to access window(1,2) so that it would get Button 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 个组件之后换行
假设声明的网格布局:
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) 处网格中的元素(在本例中为按钮)?例如:我想访问 window(1,2) 以便获得按钮 5.
I want to access window(1,2) so that it would get Button 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 个组件之后换行