gpt4 book ai didi

java - 在 Java Swing 中,如何管理允许选择多个面板的面板列表?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:04:49 25 4
gpt4 key购买 nike

我正在开发一个跟踪大量任务的内部应用程序。我想要一个简单的任务监视器,它会列出任务名称和任务状态。我需要它看起来有点漂亮,我不是设计师,所以无论我做什么都会很糟糕,但基本的文本显示无法满足项目要求。

我基本上想做的是显示类似于 Firefox 下载窗口、I-Tunes 下载窗口的内容,我可以说出更多,但它们看起来基本相同。在这些应用程序中的每一个中,每个“进度面板”都是可选的。因此,要实现这一点,我认为只使用一个 JPanel 列表会很简单,每个 JPanel 都有一个 JProgressBar 和一个 JLabel,每个 JPanel 都可以接受焦点以确定它和其他人是否被选中。我认为这将是一项简单的任务,但如果我使用 JList,它只会显示文本。然后我想我会在一个更大的面板中显示所有任务面板,但我无法让内部面板识别焦点。

有这方面的模式吗?有没有我还没有找到的滚动标准解决方案?或者有更好的方法吗?我不想重新发明轮子,但我认为这会很简单。

最佳答案

听起来您可能正在寻找的是 JList .

您可以将您的项目添加到 JList首先将您的“任务”添加到 JList对象的 ListModel (请参阅 The Java Tutorials 中的 Create a Model 部分),然后您需要分配一个自定义的 ListCellRenderer 它将接受您的“任务”并在 JList 上呈现作为JPanel在列表本身中。这里的关键是使您的自定义 ListCellRenderer能够在 JList 中显示您的“任务”您希望它在 JList 上显示的方式.

查看 Writing a Custom Cell Renderer来自 How to Use Lists 的部分Java 教程的页面。它将描述如何使您的自定义 ListCellRenderer因此您可以将您的“任务”表示为您想要的任何内容。

为简短起见,您将实现 ListCellRenderer 通过实现 getListCellRendererComponent 接口(interface)这将返回 Component 这是您的任务在 JList 中的表示.您可能想要构建或实例化您的 JPanel在此方法中并将其作为 Component 返回.

关于java - 在 Java Swing 中,如何管理允许选择多个面板的面板列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/378161/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com