我有一個程序,我想單擊按鈕並讓它們將信息傳遞給它們的actionListeners。這是一個圖書館程序,用戶點擊圖書圖像,打開一個新的JFrame與關於該書的信息。如何根據按下哪個按鈕來製作單獨顯示的信息? (我想一個通用的ActionListener,而不是個別的,因爲我有超過200本書。)包含信息的Java ActionListeners
-1
A
回答
0
你可以...
使用鍵的按鈕,它的價值鏈接到它Map
。所以單擊該按鈕時,您可以使用JButton
爲重點,並要求Map
爲關聯值
看一看Collections Trail瞭解更多詳情...
你可以...
創建一個簡單的自定義ActionListener
歷時的「書」作爲參考,這將是能夠執行單擊時所需的行動,但其定製爲個人的書......
喜歡的東西...
public class BookActionHandler implements ActionListener {
private Book book;
public BookActionHandler(Book book) {
this.book = book;
}
public void actionPerformed(ActionEvent evt) {
BookFrame bookFrame = new BookFrame(book);
//...
bookFrame.setVisible(true);
}
}
然後,你可以創建你的按鈕類似...
for (Book book : listOfBooks) {
JButton btn = new JButton(book.getTitle());
btn.addActionListener(new BookActionHandler(book));
//...
}
你可以...
使用Action
API給定的「書」與按鈕相關聯,使Action
配置按鈕以及爲按鈕點擊時提供執行所需操作的方法...
有關詳細信息,請參閱How to Use Actions ...
喜歡的東西...
public class BookActionHandler extends AbstractAction {
private Book book;
public BookActionHandler(Book book) {
this.book = book;
putValue(NAME, book.getTitle());
putValue(LARGE_ICON_KEY, book.getIcon());
}
public void actionPerformed(ActionEvent evt) {
BookFrame bookFrame = new BookFrame(book);
//...
bookFrame.setVisible(true);
}
}
然後,你可以創建你的按鈕類似...
for (Book book : listOfBooks) {
JButton btn = new JButton(new BookActionHandler(book));
//...
}
0
我想通了,所以我會張貼在這裏萬一別人有相同的問題:
class BookListener implements ActionListener{
public Book myBook;
public BookListener(Book b) {
this.myBook = b;
}
public void actionPerformed(ActionEvent e) {
您只需將其插入到類定義中,並在調用actionListener時:
bookButton.addActionListener(new BookListener(b));
相關問題
- 1. Java ActionListeners
- 2. Java中的ActionListeners
- 3. file_get_contents包含哈希信息
- 4. 多個Java ActionListeners
- 5. NSMutableURLRequest的響應不包含的信息
- 6. FFT箱中包含的信息
- 7. 包含速度信息的GPX文件
- 8. 提供一個包含信息的java servlet
- 9. 獲取有關數組包含對象的信息 - Java
- 10. Java Swing多個ActionListeners
- 11. 的Java的ActionListeners錯誤
- 12. Java中嵌套的ActionListeners?
- 13. DataContractJsonSerializer何時包含類型信息?
- 14. MapBox SDK RouteLeg不包含任何信息
- 15. Timezone是否包含DST信息?
- 16. 將信息傳遞迴包含文件
- 17. XML解析器包含調試信息
- 18. Kohana 3.2 ORM不包含模型信息
- 19. Bardcode包含交易金額信息
- 20. Tensorflow模型(.pb)包含設備信息?
- 21. Java ActionListeners到獨立類
- 22. 在Java中傳遞ActionListeners,pack()
- 23. 如何獲取UDP數據包中包含的信息?
- 24. VS內置的DLL沒有調試信息。甚至包含調試信息
- 25. 鉻含量腳本:window.postMessage()「信息」事件不包含「源」屬性
- 26. Java Servlet的信息
- 27. 錯誤信息的含義
- 28. 的java的ActionListeners諮詢需要,Jmenuitems
- 29. 如何在setuptools包中包含VCS信息
- 30. 可運行jar包(通過Eclipse)包含跟蹤信息嗎?
這似乎是一個很基本的問題,一點研究就可以解決。 [使用按鈕的oracle教程](https://docs.oracle.com/javase/tutorial/uiswing/components/button.html)涵蓋了這一點。 – 2014-12-03 23:26:09