簡體   English   中英

對於 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) 以便獲得 Button 5。

我想訪問 window(1,2) 以便獲得 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));
  1. 您應該在將組件添加到面板之前設置布局。
  2. 您應該使用new GridLayout(0, 3)來指定要在 3 列之后換行。 也就是說,無論您向網格添加多少組件,都會在 3 個組件之后換行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM