任何人都知道如何將號碼存儲到JButtons
?例如,每次用戶按下按鈕時,我都想記錄該號碼。GUI - 分配給按鈕的錄製號碼
1
A
回答
3
您應該使用的ActionListener,和您可以使用列表,如下所示:
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class NumberButtons extends JFrame {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new NumberButtons().setVisible(true);
}
});
}
private List<JButton> buttons = new ArrayList<JButton>();
private ActionListener listener = new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int index = buttons.indexOf(e.getSource());
System.out.println("Number " + index + " pressed");
}
};
public NumberButtons() {
JPanel pNum = new JPanel();
pNum.setLayout(new GridLayout(3,4));
for (int i = 0; i < 10; ++i) {
JButton b = new JButton("" + i);
b.addActionListener(listener);
pNum.add(b);
buttons.add(b);
}
this.add(pNum);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.pack();
}
}
1
我假設你有一個班,其中有一個按鈕,你點擊。使這個類實現一個監聽器接口。如果我沒有記錯,界面是ActionListener
,方法是actionPerformed
。在這種方法中,增加該特定按鈕的計數器。例如,您可以將號碼存儲在HashMap<JButton, Integer>
中。
1
只是鏈接的ActionListener
到您的按鈕,並在每次actionPerformed
callbak被調用時增加一個變量:
yourButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
variable++;
}
});
有關詳細信息,你可以閱讀官方documentation
0
這是一個快速的JButton子類,它可以做你想做的事。是的,它可以在沒有子類化的情況下完成,但如果你想修改JButton的行爲(所以它有一個額外的狀態就像在這種情況下),子類化是一個很好的選擇。
public class CountButton extends JButton implements ActionListener {
private int count;
CountButton() {
super();
}
@Override
public void actionPerformed(ActionEvent ae) {
++count;
}
public int getCount() {
return count;
}
} // CountButton class
相關問題
- 1. 按組分配的號碼
- 2. 分配程序按鈕GUI界面
- 3. 將代碼分配給動態創建的按鈕
- 4. 將索引分配給按鈕C#
- 5. 將索引分配給按鈕數組?
- 6. 分配id給jquery對話框按鈕
- 7. 將FB登錄動作分配給自定義按鈕
- 8. 是否可以將按鍵代碼分配給Android按鈕上的按鍵?
- 9. 如何動態地將按鍵分配給按鈕?
- 10. 在Python中,如何將Tkinter按鈕分配給一段代碼?
- 11. 按序列分配ID號碼
- 12. GUI按鈕ActionListeners
- 13. Matlab GUI按鈕
- 14. primefaces號碼:按鈕的問題
- 15. 配售符號按鈕
- 16. 如何將鍵分配給Matlab上的按鈕?
- 17. 隨機分配的按鈕
- 18. GUI中計算按鈕編碼錯誤
- 19. Matlab GUI,單選按鈕,繪製
- 20. 如何將導航欄中的後臺按鈕分配給自定義按鈕?
- 21. 按鈕給變量分數
- 22. 如何在使用Java中的ActionListener按下或釋放按鈕時將方法分配給按鈕?
- 23. 通過按鈕GUI
- 24. 多按鈕GUI VBSscript
- 25. Java GUI按鈕actionPerformed
- 26. 如何將現有代碼分配給java類中的新按鈕?
- 27. 分配一個按鈕的按鍵
- 28. 星號記錄的分機號碼
- 29. 我可以將序號分配給減速器中的記錄
- 30. 的Java GUI按鈕unpressable
你是指「*記錄*」和「*在JButtons *上存儲數字」的含義? – mre
我猜你的最終目標不是從JButtons中檢索數字。你的問題聽起來像你試圖以一種可能的迂迴方式來實現某些東西。你想從更廣義的角度去做什麼,這個案例的具體細節是什麼?這些數字需要在哪裏結束?存儲和記錄都可以引用各種各樣的東西。 – Dogmatixed
有關可以滿足整個規範的代碼,請參閱[本答案](http://stackoverflow.com/questions/7441625/how-to-find-a-button-source-in-awt-calculator-homework/7441804# 7441804)。 –