当前位置: 首页 > 面试题库 >

大型项目的Java GUI架构

白晋鹏
2023-03-14
问题内容

我想制作一个应用程序,它将用作多个服务器的接口。原因:在默认情况下提供的web
iface(我们无法更改)中,我们遗漏了很少的事情,可以做得更好的事情很少,并且可以肯定的是,某些内容的自动化将使工作变得更加轻松。

我所拥有的:与服务器应用程序的Web界面进行通信的几乎完成的类。

GUI描述:对于某种版本0.1:用户名的文本字段,用于选择服务器的单选按钮和一个“执行”按钮。然后使用几个(4-12)操作按钮来处理数据,带有结果的2x文本区域,带有一些文本数据的一个标签-
我可以进行管理。然后,我需要查看数据-
网格MxN,它将加载数据,预期大小:7-15列,通常为10行或更少,但很少会超过1k(甚至更多),但我不需要全部在这种情况下对用户可见)。

我需要的只是一个建议。我希望从一个简单的版本开始(并且我已经在进行此工作,但是我坚持了很多事情-95%的cos和GUI绝对是新手,而5%的cos是Java的新手)。我检查了很多教程,但是它们都很简单。

实际问题:

1)验证。在MVC中,控制器应处理所有用户操作-
它是由视图的方法完成的,类似于button.addActionListener(param);。anotherButton.addActionListener(paramp;
…?

1b)我已经看到所有这些都是通过一个(嵌套的)类实现的,然后检查了源或smth-可以吗?将有很多按钮等。

2)当我需要对click / dbl click进行操作时,如何实现数据网格?

4)第一行是标题,其余行应具有滚动能力-应该在网格中还是外部(自己的网格):

4a)如何确保标题的大小(宽度)与数据中的大小相同(我不想设置直线大小)

4b)到目前为止,我还无法创建任何可滚动的内容,但是我猜这很糟糕。如何确保页眉将保留在某个地方,其余部分可以滚动?

5)应如何实施“数据更新”?我有JPanel,可以从中删除网格组件,然后制作一个新组件并将数据添加到其中(简单,但是也许还有另一种方法)。首要的增强功能之一就是排序-
使用与新内容相同的方式吗?

非常感谢您提供任何答案,我知道这不是很具体,但是我发现的示例太简单了。

我计划了很多增强功能,但是那是将来的事情,我不介意重复几次GUI /
Controller,至少我会练习,但是我不想完成一部分代码并意识到我必须重写控制器的一半和视图的1/4才能实现。

注意:我计划在工作中使用它作为工具(如果一切正常,只需单击几下即可达到我工作的25-50%:-)所以我的意思是。

注意2:我对编程并不陌生,但是我从未创建过GUI(这就是为什么我的GUI带有带有2个项目和3个组件的菜单栏,并且几乎完成了web-iface连接)。

注意#:3可拖动的数据标题,选项卡式数据视图-这就是未来的计划:-)


问题答案:
  1. Swing中的MVC在这里进行了检查;使用嵌套类来简化原型设计并为将来的问题创建mcve;根据需要,可以将嵌套类提升为具有 包私有 访问权限的单独类。

  2. 使用JTable; 它的渲染器的 flyweight实现非常适合按行和列组织数据。

  3. 第三个项目不存在,但是如果您打算拖动列或对行进行排序,则“始终记住要转换单元格坐标”。

  4. 使用a JScrollPane保持表格标题不变。

  5. 更新TableModel,侦听视图将自动更新以响应。



 类似资料:
  • Run项目架构 Run是一个命令行工具,没有复杂的CS或BS架构,只是通过解析命令行或者配置文件来下载运行相应的脚本。 Flock Run使用了前面提到的进程文件锁,避免同时运行同一个脚本。同时运行同一个脚本会有什么问题呢?例如我们run pt-summary,同时另一个终端执行run -u pt-summary,这样前一个命令可能使用旧脚本也可能使用新脚本,这是我们要规避的问题。

  • 流行的Web框架大多数是MVC框架,MVC这个概念最早由Trygve Reenskaug在1978年提出,为了能够对GUI类型的应用进行方便扩展,将程序划分为: 控制器(Controller)- 负责转发请求,对请求进行处理。 视图(View) - 界面设计人员进行图形界面设计。 模型(Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功

  • 我目前正在开发一个spring boot应用程序,希望看到一些关于spring boot项目的架构有多大的真实例子。我自己也尝试过搜索网络,但到目前为止没有成功。 我对使用spring数据rest的更大示例特别感兴趣。

  • 求大佬推荐个数据处理的开源项目,功能大概包含元数据管理、数据质量管理、数据共享交换、数据资源目录等几大功能?搜变gitee 也没找到个

  • 问题内容: 我正在使用一个简单的Web实用程序,该实用程序使用HTML5的IndexedDB(类似于键值数据库)功能。 我一直在寻找,但我不知道:一件物品可以存储的最大尺寸是多少? 问题答案: 我认为单个项目的大小没有具体限制,只有全局限制。 自最初编写此答案以来,有关全局限制的规则已更改。所述向上的最新文档是关于MDN-取决于可用的磁盘空间,“基团”极限(对于给定的结构域,包括其所有的子域) 的