我正在寻找一种将图像加载到我的应用程序中然后在网格中显示它们的方法。有点像谷歌图片搜索,只是缩略图的大小相同。图片的数量是随机的,所以它必须能够滚动。我还必须能够与图像交互,所以当我点击它时,我必须能够触发一个事件。
创建这种网格的最佳方法是什么?如果是这样,指向教程的链接会很有帮助!
提前致谢
由于您想与图像交互,我会说绘制它们是不可能的,所以我的建议是创建 JLabels 来保存图像并简单地将 JLabels 添加到具有 gridLayout 的面板中。
至于交互,为每个 JLabel 添加一个侦听器(可能是鼠标),它会很容易地检测到您点击的那个。
例子:
JLabel j1 = new JLabel();
j1.setIcon(new ImageIcon("path to your image");
j1.addMouseListener(...);
JPanel jp = new JPanel(new GridLayout(nRows, nCols);
Jp.add(j1);
只是一个具有水平或垂直包装的 JList。您只需将 ImageIcon 添加到模型中,图像就会正确渲染。阅读 Swing 教程中有关如何使用列表的部分以获取更多信息。JList 已经提供了“选择”类型的特性。