2012-02-28 67 views
4

因此,目前我正在尝试在Java中进行我的第一个简单游戏,并且我已经开始处理GUI。我已经准备好了我想要UI的样子,但是我没有花太多时间在java中处理GUI,所以我有点迷路。我不明白,如果GUI应该是一个独立于逻辑的实体,或者构建在同一个类中。例如:我有一个包含颜色和值的卡片类,但是更好地编写一个单独的类来仅显示和使用图形来表示其动作侦听器使用我的实际对象Card类逻辑的卡片?或者,我只是将GUI和逻辑编码到一个类中,因为那样我必须扩展JComponent,而不是我原来的卡类。Java GUI问题?

此外,我真的很困惑如何一个专业的外观GUI看起来像编码明智?就像游戏League of Legends一样,客户端使用Java编码,而Frame甚至不是本地Windows框架。是按钮和框架,不是所有的自定义图片编码为像按钮或扩展JComponent的组件等?我非常了解Java编程的逻辑,因为我在AP计算机科学方面的知识,但是对于我想要完成的任务而言,该类非常基本,我无法在Google上找到任何地方学习专业技术和实践。

我目前使用NetBeans IDE中

+2

阅读,阅读,阅读。并且练习很多。 – Pedantic 2012-02-28 04:08:48

+0

开始的一个很好的地方就是oracle发布的Java教程。它们通常包含示例以及关于如何最好地使用组件的说明:http://docs.oracle.com/javase/tutorial/uiswing/components/ – 2012-02-28 04:12:20

+3

调查MVC(模型视图控制器)。你应该努力分离关注点 - 每个班级应该执行一个目的。 – 2012-02-28 04:12:59

回答

4

您将通过经验学到很多东西。

许多最先进的接口甚至不再像Java一样。至少顶层延伸JComponent,但按钮​​不一定非要。主应用程序可以使用自定义绘图方法来定制外观或其他库来显示3-D图像。一旦你有使用许多不同的组件和库的经验,你会开始看到他们如何能够一起形成一个有凝聚力的应用程序。

要解决您的对象模型问题,绝对要从您的对象中分离出一些类来显示它们。一个对象最终可以被应用程序的不同部分使用,通过网络传输,在屏幕上显示,作为文本发送或任何数量的不同事物。如果你试图将所有这些代码放入你的对象模型中,那将是一团糟。

尝试在你的对象上构建常识方法。考虑与这些对象交互时,应用程序的所有不同部分将使用哪种方法,问题和属性。任何一次性的,只在一个地方有用的东西,不要放在主要的对象类中。

另外,请记住,您始终可以移动功能。使用像Eclipse这样的好IDE可以很容易地将类的方法,属性和其他部分向上或向下推入超类或子类。如果您编写了一些处理对象的功能,请将其放入使用它的模块中。当您需要另一个模块中的相同功能时,请将其移至您的对象模型,以便共享。使用正确的工具很容易。

+2

回应上述 - 子类从框架中使用的所有内容。即使它允许你覆盖将来的很长一段时间。在现实生活中,你不是在编写一次性代码,而是在编写将来必须支持的内容。 – Pedantic 2012-02-28 04:43:13

0

如果你正在做一个AWT或Swing GUI我会建议使用IDE像Netbeans它有一个内置的GUI构建了AWT和Swing。无论您是否想要使用它,它都可以帮助您学习一个构建GUI的方式。

正如评论者提到的教程也非常好,虽然我个人发现书比在线教程更容易阅读。

此外,代码完成对于阅读Java Docs和学习每个类可能的方法是非常有用的。

+2

我目前使用Netbeans,但由于学习目的,我宁愿主要硬编码一切,以了解图像和什么不是。这实际上更像是我应该如何使用GUI来构建我的编程来模拟专业程序。 – Rendition 2012-02-28 04:16:52

+0

@Rendition我只是说生成的代码可以是**一种方式**的参考,如果你能做得更好,就可以自由地做到这一点。事实上,我鼓励你自己去做!只是一个建议,如果你真的迷路了。 – Hawken 2012-02-28 04:22:24

+1

我会远离GUI构建器并学习语言。我或许可以创建一个GUI,它比任何故事登台GUI生成器可以生成的功能更精确,更精确。 – Pedantic 2012-02-28 04:31:21

0

首先,您应该对Java有一个清晰的概念。我想推荐你使用Swing和IDE NetBeans。你会在NetBeans网站和youtube找到好的GUI相关教程。希望这对你有很大的帮助。