如何为基于Java的桌面应用程序实现多用户交互?

时间:2019-06-20 09:12:58

标签: java javafx netbeans desktop-application scenebuilder

我对编程很陌生,所以请多多包涵。

对于我的大学项目,我正在开发一个Java桌面应用程序,该应用程序使用MySQL来实现数据库。对于GUI,我正在使用JavaFx和Scene Builder。 我正在制作的应用程序的灵感来自Google Play商店中某些基于Android的应用程序,即“ Life is a RPG”和“ Habitica”。它们有点像“生产力”应用程序,可帮助您将想要执行的任务添加到应用程序,然后在完成所述任务时在应用程序的“经验值”和“金牌”中奖励您。它需要老式的rpg问题,并尝试以“类似任务”的方式组织必须执行的任务。

那是我最初的想法。我的老师要我添加一些功能。即,他希望我的应用程序的用户能够彼此形成“小组”或“聚会”,并参与某种小组活动,他们都在进行相同的活动,因此,要为所述活动获得奖励。

在通过教程进行搜索时,我设法找到并实现了该应用程序的基本功能,例如登录用户或添加任务等。但是,我无法弄清楚的是我该如何做此用户之间的互动是在应用内进行的。很抱歉,我的问题听起来不太宽泛,但我一直在查找它,却无法理解或提出有关如何告诉我的程序用户A与用户B互动的想法,并且他们正在共同完成某项任务。

我再次为相当愚蠢的问题和冗长的文字表示歉意。在这方面的一些帮助或澄清将是高度赞赏的。就我需要研究和学习的内容而言,即使在正确方向上有一点也对您有很大帮助。

谢谢。

1 个答案:

答案 0 :(得分:1)

由于这是非常广泛的内容,因此我将为您提供高级答案。各个桌面客户端都共享同一数据库(MySQL)。

因此,您可以在数据库中解决此问题。

一种选择是拥有某种“小组任务”。您的应用程序的每个用户都可以注册该任务,当它“完成”时,每个人都会获得一些积分。

要管理此问题,您可能必须在数据库中建立表:

  • 一张工作表
  • 合作者一张桌子

每个任务都需要一个唯一的ID,然后您可以在合作者表中引用该ID。

Task table:

-------------------------
| ID | Task             |
=========================
| 1  | Slay dragon      |
-------------------------

Collaborators table:
-------------------------
| Task | User           |
=========================
| 1    | Moe            |
-------------------------
| 1    | Homer          |
-------------------------

在此示例中,MoeHomer的任务是杀死一条龙。一旦龙死了,双方都可以得到一些积分。这是一个非常非常简单的示例。通常,您将有更多的表。至少一个给用户等。

但是除此之外,这将是一个高级想法。显然,您将需要构建一些UI来允许用户参与任务等。但是我相信您可以弄清楚这一点。