把结尾绑在了gui java上

时间:2011-08-08 02:01:30

标签: java swing user-interface

我最近开始在Swing中开发一个GUI,以便使用Smack API在java中编写一个简单的XMPP客户端。我遇到的问题是试图弄清楚如何将按钮点击转换为客户端上的操作而不必强制编写意大利面条代码以将所有内容绑定在一起。

你知道哪些示例/教程会显示比“我看一下屏幕上的按钮”更复杂的挥杆应用程序?不幸的是,我的google-fu似乎只返回了这些简单的入门级课程的无数变化。我很乐意接受你知道我可以研究的开源应用程序。即使只是一个诸如“EventHandlers”之类的话题也会令人惊叹。

我为我的问题的模糊性道歉,但我觉得在这一点上我只是在谷歌搜索符号。 (IE除非你已经知道它所谓的键入google符号是无用的)。如果我不清楚请提及哪里,我会尽我所能澄清。感谢。

4 个答案:

答案 0 :(得分:2)

学习如何使用Swing很容易。学习如何有效地使用Swing 并不容易。这是wicked problems中的一个,你必须先把它弄错几次。

尽管如此,我建议的两个最重要的概念是正确使用Action APISwing concurrency。正确使用Action API将允许您通过定义可链接到任意数量可视组件的操作来保持控制器代码的模块化。例如,您可以将同一操作与菜单项,按钮或键盘快捷键相关联。使用SwingWorker等并发技巧,您可以在不冻结用户界面的情况下执行长时间运行的任务,而无需重新发明轮子或手动操作不同的工作线程。

我将给出的另一条一般性建议是研究模型 - 视图 - 控制器,正如其他海报所建议的那样(尽管技术上Swing将视图和控制器捆绑在一起)。创建表示您希望用户能够操作的数据的模型,并使用您自己的自定义事件和侦听器将该信息传递给视图。换句话说,不要害怕覆盖EventObject来表示应用程序状态的不同更改。这也允许您拥有一个模型对象(在您的情况下,可能是一个联系人列表),您可以将不同的视图挂钩,而无需更改底层结构。

哦,还有另一个漏洞 - 如果你的行为需要可重用,那么从ActionListener派生的一个好的匿名内部类比使视图类本身成为ActionListener更具可读性。每当我看到component.addActionListener(this)时,我都会发抖。

所有这一切,最好的学习方法是做,所以继续进行实验,找出适合你的策略。

答案 1 :(得分:1)

尝试

  • 模型视图控制器
  • 模型视图演示者
  • 观察

这应该让你开始使用谷歌。

答案 2 :(得分:1)

我建议使用BeanBindingsetup easily with Google's WindowBuilder

[更新]刚发现这个应该有用的nice article about JSR 295

答案 3 :(得分:1)

您可以从Using Text Components和这个简单的example开始。