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

挥杆的GUI准则

岑经纶
2023-03-14
问题内容

有没有资源可以解释用于秋千的GUI设计?像这样的最佳做法。


问题答案:

由于Swing在许多不同的平台上工作,因此不再严格遵循设计准则。Sun很久以前就写过文章,但从未更改过,因此,如果您认为有帮助,我想读一读。这是一些有关进行秋千开发的实用知识。

  • 切勿使用GridBagLayout。抓取TableLayout。它从根本上简化了Swing UI的布局。GridBagLayout是魔鬼。
  • 不要为了获得正确的布局而过度嵌入组件(即嵌入式BoxLayout等)。有关方法,请参见第1点。屏幕上有组件会导致性能问题。
  • 沿MVC行分隔程序。Swing具有视图和模型分离的功能,但是在大型程序中,视图(即,Swing组件的子类)变成了伪视图/控制器,这只会使事情变得难以重用和维护。它很快就变成了意大利面条代码。打破习惯,创建一个不扩展Swing的Controller类。模型也一样(不摆动)。控制器实例化高级视图类,并将自身连接为视图的侦听器。
  • 仅使用简单面板简化弹出对话框。不要继承JDialog。创建一个可重用的对话框类,该类包装可用于JOptionPane之类的面板。您的面板将不仅限于对话框,还可以重复使用。这样工作非常简单。
  • 避免使用动作侦听器/命令。这是旧的垃圾,不是很可重用。使用AbstractAction(匿名类是您的选择,我对它们没有问题)。AbstractAction封装了文本,图标,气动,加速器,可在按钮,弹出窗口,菜单中重用,可以切换启用/禁用状态的句柄,可以在多个组件之间共享,它也是InputMap / ActionMaps用来将键盘笔触映射到动作的基础。ActionMap为您提供了重用的力量。
  • 最好必须查看到控制器的调度事件。我不是在谈论鼠标/键盘垃圾,而是高级事件。像NewUserEvent,AddUserEvent,DeleteUserEvent等。让您的控制器侦听这些高级业务事件。通过将视图的关注点(我应该使用表,列表,树还是其他东西)与应用程序流分开,将促进封装。控制器不在乎用户是否单击了按钮,菜单或复选框。
  • 事件不仅仅针对Controller。Swing是事件编程。您的模型将在SwingThread之外或在后台运行。将事件调度回控制器是一种非常简单的方法,可以使事件响应可能在使用线程完成工作的模型层中发生的事情。
  • 了解Swing的线程规则!您会惊讶地发现,很少有人真正了解Swing是单线程的,这对多线程应用程序意味着什么。
  • 了解SwingUtilities.invokeLater()的作用。
  • 从不曾经使用SwingUtilities.invokeAndWait()。你这样做是错的。不要尝试在事件编程中编写同步代码。(在某些特殊情况下,invokeAndWait()是可以接受的,但是有99%的时间您不需要invokeAndWait())。
  • 如果要从头开始一个新项目,请跳过Swing。它很旧,已经过去了。Sun从未像服务器那样真正关心客户端。自从最初编写以来,Swing的维护情况一直很差,并且没有取得太大进展。JavaFX尚不存在,并且遭受了许多Swing的过失。我想说说Apache Pivot。许多新想法和更好的设计以及活跃的社区。


 类似资料:
  • 问题内容: 我只想了解秋千的一些知识1)如何在秋千中使用MVC模型?2)说我有一个主窗口,我需要将菜单作为单独的类,将所有组件作为单独的类,这将是集成它的最佳方法 问题答案: 好的,这被称为过度矫正地回答,对此感到抱歉,但这是我快速举过的一个简单示例,尝试使用简单的MVC模式完成一些琐碎的事情:按下按钮并更改JTextField中的文本。这太过分了,因为您可以只用几行代码就可以完成相同的操作,但是

  • 问题内容: 我的UI有这个课程 我有另一个类,它将设置的文本,直到我将MyFrame扩展为另一个类中的textArea。 然后,我实例化UpdateText并调用函数settext。但是该文本似乎没有出现在GUI中。 请帮忙 问题答案: 首先,除非您想要不同的行为,否则不要覆盖该方法。其次,您无需扩展任何内容。您所要做的就是按照这些简单的步骤进行操作,就可以开始工作了! 在课堂上,将以下几行放在其

  • 问题内容: 如何将stdout数据重定向到tkinter文本小部件? 问题答案: 您需要创建一个类似文件的类,其方法改为写入Tkinter小部件,然后执行。 示例(从链接复制): 然后,在您的Tkinter小部件中:

  • 输出摇杆的上下(-100~100)、左右(-100~100)的位置。 用法 Your browser does not support the video tag. 案例:摇杆小车 说明:电机模块来驱动小车驱动,摇杆模块来触发电机模块,无线接收模块配对小车与摇杆,前后左右摇动摇杆,让小车行走。 所需模块:电源、无线接收、摇杆、双直流电机驱动、直流电机套件包、磁吸板、插销。

  • 摇杆能够带来非常直观且有趣的操作体验,使用它控制你的发明前后左右移动。 净重量:10.0g 体积:24x24x25mm 参数 使用寿命:>10000次 工作电压:DC 5V 抗跌落能力:1.5m 工作温度:-10℃~55℃ 工作湿度:<95%" 特点 进口摇杆模组

  • 摇杆可以用来控制物体运动的方向,mBuild 的摇杆可以输出摇杆在X轴和Y轴上的坐标,范围及其上下左右的判定区域如下: 生活实例 游戏手柄利用摇杆控制人物的移动方向或视野方向 无人机遥控器上使用摇杆控制无人机的转向及转速 参数 尺寸:24×36mm 使用寿命:500,000次 x轴读值范围:-100~100 y轴读值范围:-100~100 工作电流:15mA 摇杆复归精度:±0.2mm