我有一个程序,我想单击按钮并让它们将信息传递给它们的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