猿问

如何在 Java Swing 中创建响应式 JList

我想创建一个商店,方法是JPanel让里面的每个组件都是一个JPanel带有图像、标签和按钮的主组件。

我确实尝试过使用 aJList但它的问题JList仅包含组件的渲染,因此该按钮不起作用并且它只是一个图像。我可以四处走动并使用 MouseEvent,但对我来说感觉不对,我确信有更好的解决方案。

我希望组件将根据框架大小改变它们的位置,就像在JList.

例如,如果我从屏幕的宽度更改组件的位置将从以下更改:

对此:

http://img2.mukewang.com/6350f3ba0001a3d106560273.jpg

我确实有一个想法,通过使用GridLayoutor GridBagLayoutpaintComponent因为它调用每个渲染。如果您知道另一种调用每个渲染 int 的方法,JPanel我想知道)并通过更改内部布局变量来更改组件的位置paintComponent

我确实上网寻找解决方案,但我只发现有人使用过JTable,但我看不到它在这里工作。


隔江千里
浏览 68回答 1
1回答

蛊毒传说

其中的每个组件都是一个带有图像、标签和按钮的 JPanel。说得通。通过更改paintComponent 内部的布局变量来更改组件的位置。paintComponent() 方法与更改面板的布局无关。您不应该使用 paintComponent() 方法。我确实有一个使用 GridLayout 或 GridBagLayout 的想法使用布局管理器是正确的,但不幸的是,默认布局管理器都不会自动包装随机数量的组件。调整框架大小时会自动调用布局管理器。因此,您可以使用Wrap Layout,它是 FlowLayout 的扩展,允许随机包装。
随时随地看视频慕课网APP

相关分类

Java
我要回答