面向对象的编程-Application 37

Previously on OOP:

If“update”button is clicked inEmployeeEditViewclass, the controller will first update information in Model and thenEmployeeDisplayViewclass.

前面举的几个GUI的例子都不够日常,本黄鸭决定再举一些常见的例子,比如本文中的login dialog。

因为LoginExample类是ActionListener类的子类,所以很多宝宝们以为这是一个Controller类,但是其实包含了MVC pattern的所有组成部分,这种编写方式不是很推荐。

LoginExample的attributes分别是有面板三个,显示标题五个,显示文字两个,以及按钮一个。

在构造函数中,我们创建attributes的实例,然后把控件放到面板和窗口中去,这一项原本是View类的工作。窗口中最大、最底层的面板是totalGUI,上面会写这个窗口的标题,titleLabel。

totalGUI面板上有两个小面板,本段代码中是textPanel,写“Username”和“Password”两个字符串。

这里是输入“Username”和“Password”的输入框。

另外一个面板是completionPanel。在用户点击“登录”之后,如果“Username”和“Password”还会在边上显示“Wrong”字符串。

actionPerformed()函数适合写在Controller类或者Model类中。

With “Login”button pressed, we simply check to see if the username and password match "user" as the username and "123" as the password.If they do, we set the labels to them to "Correct!" and colorthem blue.At the end, we check if both labels are Blue. If they are, we set thescreen to be 'Logging In'.

createAndShowGUI()函数适合在main函数所在的那个类里面编写。它创建了一个JFrame,即空的窗口,并且让用户看见。

最后是main函数,里面创建了一个event-dispatching thread,分配任务的线程,会给创建GUI的任务分配CPU时间。这样一来,不一定会在程序开始运行时就打开GUI,只有在轮到线程的执行之后,用户才能看到登录对话框。

欢迎使用本黄鸭编写的小程序~

微信公众号二维码:

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20181123G1F4Y300?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券