簡體   English   中英

如何通過循環從另一個JFrame為一堆JButton設置文本?

[英]How to set text for a bunch of JButton from another JFrame with loop?

我在JFrame的網格中有36個JButton組件,當我從另一個框架上的菜單中打開框架時,希望將其文本設置為1、2、3 ... 36。 (稍后我必須隨機分配它們的數量。)

這些按鈕具有相似的名稱:

jButton1
jButton2
jButton3
...
jButton35
jButton36

只需將第一個按鈕的文本更改為1即可:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    grid gr = new grid();
    grid.jButton1.setText("1");
    gr.setVisible(true);
}

有沒有辦法像這樣?

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { 
    grid gr = new grid();
    String number;

    for (int i=1; i<37; i++) {
        number=Integer.toString(i);
        grid.jButton<i>.setText(number);
    }
    gr.setVisible(true);
}

我已經找到了這些鏈接,但是它們並不是很有用,因為我的按鈕不在任何數組或列表中,並且它們正在更改同一框架中的文本,或者沒有其他方法嗎?:

在Java中使用動態名稱分配變量

如何為10 x 10網格按鈕布局中的每個JButton提供唯一的ID /名稱

如何重命名一組JButton?

創建類型為JButton的ArrayList,向其添加JButton,然后使用for-each循環進行迭代並分配值。 該代碼對我有用。

    JFrame frame = new JFrame();
    frame.setSize(400, 500);
    frame.setVisible(true);
    frame.setLayout(null);

    ArrayList<JButton> buttons = new ArrayList<JButton>();
    JButton b1= new JButton();
    JButton b2= new JButton();
    JButton b3= new JButton();
    JButton b4= new JButton();
    JButton b5= new JButton();

    buttons.add(b1);
    buttons.add(b2);
    buttons.add(b3);
    buttons.add(b4);
    buttons.add(b5);
    int count = 1;
    for(JButton b: buttons)
    {
        b.setText(String.valueOf(count));
        b.setBounds(0,count*50,50,30);
        frame.add(b);
        count++;
    }

暫無
暫無

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

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