大型项目的Java GUI架构

我想制作一个应用程序,它将用作多个服务器的接口。原因:在默认情况下提供的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,侦听视图将自动更新以响应。

以上是 大型项目的Java GUI架构 的全部内容, 来源链接: utcz.com/qa/400559.html

回到顶部