gpt4 book ai didi

适用于大型项目的 Java GUI 架构

转载 作者:行者123 更新时间:2023-12-04 22:18:31 24 4
gpt4 key购买 nike

我想制作一个应用程序,它将作为多个服务器的接口(interface)。原因:在默认提供的 web iface 中(我们无法更改它)我们错过了一些东西,也没有什么可以做得更好,而且肯定的是,某些东西的自动化会让工作更容易。

我有什么:即将完成与服务器应用程序的 Web 界面通信的类(class)。

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

我需要的只是一个建议。我希望从一个简单的版本开始(我已经在做这个了,但是我被困在太多的事情上了——95% 的 cos 和 GUI 的绝对新手和 5% 的 cos 我是 java 的新手)。我查看了很多教程,但它们都很简单。


真题:

1) 验证。在 MVC 中, Controller 应该处理所有用户操作——它是由 View 的方法完成的,类似于 button.addActionListener(param); anotherButton.addActionListener(paramp; ...?

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

2)当我需要对点击/双点击采取行动时,如何实现数据网格?

4) 第一行是标题,其余的应该是可滚动的——它应该在网格中还是在外部(它自己的网格):

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

4b) 到目前为止,我未能创建任何可滚动的东西,但我想那是我的错。如何确保标题停留在某个位置,其余部分可以滚动?

5)“数据更新”应该如何实现?我有 JPanel,我从中删除了网格组件,然后我创建了一个新的并向其中添加数据(简单,但也许还有另一种方法)。第一个增强功能是排序 - 使用我用于新内容的相同方式?


非常感谢任何回答,我知道这不是很具体,但我发现的例子太简单了。

我计划了很多改进,但那是以后的事,我不介意多次返工 GUI/Controller,至少,我会练习,但我不想完成一部分代码并意识到我必须重写一半的 Controller 和 1/4 的 View 才能使其成为可能。

注意:我计划在工作中使用它作为我的工具(如果一切顺利,我可以通过几次点击完成 25-50% 的工作:-)所以我真的是这个意思)。

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

注意#:3 可拖动的数据标题,标签式数据 View - 这就是 future 的计划:-)

最佳答案

  1. Swing中的MVC考察here ;使用 nested classes便于原型(prototype)制作和创建 mcve为以后的问题;根据需要,可以将嵌套类提升为具有 package-private 的单独类访问权限。

  2. 使用 JTable ;其轻量级实现 renderers适合按行和列组织数据。

  3. 第三项不存在,但如果您打算拖动列或对行排序,“请始终记住 translate 单元格坐标”。

  4. 使用 JScrollPane使表头保持静止。

  5. 更新TableModel ,并且监听 View 将自行更新作为响应。

关于适用于大型项目的 Java GUI 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25317268/

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