选择 JEditorPane 中的元素

发布于 2024-07-26 13:03:52 字数 397 浏览 2 评论 0原文

我正在创建一个 Java 应用程序,用户可以在其中搜索对象列表,然后使用动态生成的表将这些对象显示在 JEditorPane 窗口中,该表的大小随返回结果的数量而变化。

然后我想允许用户选择和编辑对象。 (Java 对象,而不是 HTML 代码)这是否可行,或者我应该做一些完全不同的事情? 我是否应该使用 JEditorPane,或者我应该使用不同的方法,我将如何处理?

有问题的显示有 1 到 50 个(取决于结果)单元格,内容如下:

名称
文本
物体的图片

作为对象一部分的两个布尔变量的复选框。

这些复选框应允许用户单击它们并更改布尔变量,然后将其保存到主对象集合中。

想法?

I'm creating a Java application where the user can search through a list of objects, which are then displayed in a JEditorPane window using a dynamically generated table whose size varies by the amount of results returned.

I then want to allow the user to select and edit the objects. (The Java objects, not the HTML code) Is this feasible, or should I be doing something completely different? Should I even be using a JEditorPane, or should I be using a different method, and how would I go about that?

The display in question has anywhere from 1 to 50 (depending on the results) cells that read like this:

Name

Text

a picture of the object

year

check boxes for two boolean variables that are part of the object.

The check boxes should allow the user to click on them and change the boolean variables, which would then be saved to the main object collection.

Thoughts?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ˇ宁静的妩媚 2024-08-02 13:03:52

JTable 适合此类任务。 您可以使用渲染器和编辑器完成许多您想要的事情。 这是一个教程。 我强调的摘录如下:

要选择显示列中单元格的渲染器,表格首先确定您是否为该特定列指定了渲染器。 如果没有,则表将调用表模型的 getColumnClass 方法,该方法获取列单元格的数据类型。 接下来,该表将列的数据类型与为其注册单元格渲染器的数据类型列表进行比较。 该列表由表初始化,但您可以添加或更改它。 目前,表格将以下类型的数据放入列表中:

  • 布尔值 — 使用复选框呈现
  • 数字 — 由右对齐标签呈现。
  • Double、Float — 与 Number 相同,但对象到文本的转换由 NumberFormat 实例执行(使用当前区域设置的默认数字格式)。
  • 日期 — 由标签呈现,并由 DateFormat 实例执行对象到文本的转换(使用日期和时间的短样式)。
  • ImageIcon、图标 — 由居中标签呈现
  • 对象 — 由显示对象字符串值的标签呈现。

使用类似的算法选择单元格编辑器。

JTable is suited for this sort of task. you can do a lot of what you are looking for with renderers and editors. Here is a tutorial. An exerpt with my emphasis reads:

To choose the renderer that displays the cells in a column, a table first determines whether you specified a renderer for that particular column. If you did not, then the table invokes the table model's getColumnClass method, which gets the data type of the column's cells. Next, the table compares the column's data type with a list of data types for which cell renderers are registered. This list is initialized by the table, but you can add to it or change it. Currently, tables put the following types of data in the list:

  • Boolean — rendered with a check box.
  • Number — rendered by a right-aligned label.
  • Double, Float — same as Number, but the object-to-text translation is performed by a NumberFormat instance (using the default number format for the current locale).
  • Date — rendered by a label, with the object-to-text translation performed by a DateFormat instance (using a short style for the date and time).
  • ImageIcon, Icon — rendered by a centered label.
  • Object — rendered by a label that displays the object's string value.

Cell editors are chosen using a similar algorithm.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文