Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

Wu 發問時間: 電腦與網際網路程式設計 · 1 0 年前

如何控制Button

假設我有一百個Button,也很蠢的設了一百個Button物件的名稱(例:a1~a100)

當第一個Button按下時,要將該Button的文字設成\"ok\",

按第二個Button時,我又希望將第一個及第二個按下的Button文字都設成\"well\"

p.s按下第一個時,將文字設成\"ok\",這個我會

按第二個時,把目前這一個文字設\"well\"這個也ok

但就是不會\"再\"把第一個button設成\"well\"

已更新項目:

哇,你真是太神了,可以用了,可以請問一下,這是你寫的嗎?很快就寫出來了嗎?

2 個解答

評分
  • 1 0 年前
    最佳解答

    import java.awt.FlowLayout;

    import java.awt.event.MouseAdapter;

    import java.awt.event.MouseEvent;

    import javax.swing.JButton;

    import javax.swing.JFrame;

    import javax.swing.JPanel;

    import javax.swing.SwingUtilities;

    public class test extends JFrame {

    private static final long serialVersionUID = 1L;

    private JPanel jContentPane = null;

    private JButton[] jButton = null;

    public static void main(String[] args) {

    SwingUtilities.invokeLater(new Runnable() {

    public void run() {

    test thisClass = new test();

    thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    thisClass.setVisible(true);

    }

    });

    }

    public test() {

    super();

    initialize();

    }

    private void initialize() {

    this.setSize(300, 200);

    this.setContentPane(getJContentPane());

    this.setTitle("JFrame");

    }

    private JPanel getJContentPane() {

    if (jContentPane == null) {

    jContentPane = new JPanel();

    jContentPane.setLayout(new FlowLayout());

    jButton = new JButton[10];

    for (int i = 0; i < jButton.length; i++) {

    jButton[i] = new JButton();

    jContentPane.add(jButton[i], null);

    jButton[i].setName(String.valueOf(i));

    jButton[i].addMouseListener(new MouseAdapter() {

    public void mouseReleased(MouseEvent e) {

    ((JButton) e.getComponent()).setText("ok");

    for (int i = 0; i < Integer.parseInt(e.getComponent()

    .getName()); i++) {

    jButton[i].setText("well");

    }

    // 要直接設定某個Button則直接用jButton[9].setText("well");

    }

    });

    }

    }

    return jContentPane;

    }

    }

    2006-08-22 02:48:00 補充:

    如果你只是要設定其中幾個按鈕變成well那就不用jButton[i].setName(String.valueOf(i));因為我也不知道用這個好不好

    2006-08-23 05:44:05 補充:

    不然是誰寫的...大概五分鐘就寫完了吧..

  • ?
    Lv 4
    1 0 年前

    對於這些控制元件建立一套訊息控制機制...當某項控制元件觸發利用訊息去更改其它元件....可以多參考軟體工程的設計樣式....

    @@~...我一定是瘋啦!Orz..可能太晚精神不好...

還有問題?馬上發問,尋求解答。