我想制作一个练习小程序,我的目标是制作一个程序,在每个程序中显示七个带有信息的矩形。我也希望卡片以随机顺序显示。
显示卡片后,用户应该可以点击卡片,然后应该从选项中删除卡片,并按照您单击它们的顺序显示在卡片下方。这可能听起来令人困惑,但我基本上希望用户能够对信息卡进行优先排序或排序。
例如,如果卡上有日期,则用户可以按照从过去到现在的顺序对它们进行排序。
我的第一个想法是在屏幕上绘制矩形并让鼠标点击x和y以查看用户是否点击了该卡,但我确定还有另一种方法不必那么复杂。
抱歉,我没有合适的代码发布,我宁愿不发布我的杂乱版本。我可以稍后用代码更新它。
我想知道最佳解决方案是什么,因为我想尽可能多地从这个项目中学习。
答案 0 :(得分:0)
您可以使用面板,并注册动作事件。操作事件不关心单击鼠标的坐标,而是关注是否单击了组件。您可以使用setActionCommand()
标识每个面板(卡片)或使用面板的一些其他属性,您可以在捕获事件后阅读(event.getSource()
方法返回已单击的组件)。
panel.setActionCommand("card1");
panel.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (event.getActionCommand().equals("card1") {
// do something
}
}
}
您也可以使用现有的LayoutManager或改编或编写一个以任何您喜欢的方式显示您的面板。