2010-05-18 49 views
11

那么我知道基本的Java并想学Swing,所以当然先看看Sun的网站,其中this tutorial是。我打算启动它,但意识到它非常依赖NetBeans,我不太确定。学习Java Swing(GUI生成器与否?)

我不知道,因为它是学习,我想成功,而不是一个漂亮的程序。

所以我认为使用这样的NetBeans会很棒,一旦我知道它,但我不想在没有线索的情况下构建内容,当然这也可能在以后导致问题。

我的第一个问题是,这是正确的方式来做到这一点,我应该尽量不要依赖IDE?通过网站上的问题,大多数人推荐使用Sun教程,而我只看到一个与我的想法一致的答案,并且它们与this resource相关,这看起来很有希望。 或者也许我对Sun教程有错误的理解,也许它不依赖于IDE,它看起来就是这样。

我的第二个问题是,如果你同意我的意见,你会推荐哪些资源(除了上面那个)?

感谢您的回答。

回答

7

我不会说Sun在他们的教程中依赖于NetBeans,就像引用NetBeans一样,因为NetBeans是Sun的IDE。

我使用Eclipse进行Java开发。一个好的IDE可以帮助你忙于工作,所以你可以专注于手头的问题。

如果你想学习秋千,我推荐The Definitive Guide to Java Swing, Third Edition。本书将逐步介绍布局和小部件,并使用和强化GUI开发的MVC模式。

对于Swing的高级开发人员,我建议使用Swing Hacks: Tips and Tools for Killer GUIs。本书向您展示了一些技巧,让您的GUI流行起来。

+0

我很可能会拿到那本书,因为某些原因,我更喜欢拥有一些东西而不是在线参考书。 – Paul 2010-05-18 23:22:33

+0

我也是这样。即使使用双显示器,我也更喜欢使用大多数在线教程的书籍。 – 2010-05-18 23:26:38

+0

2000年左右,我从Core Java书籍中学习了Swing。希望他们仍然一样好! http://www.amazon.com/Core-Java-TM-I-Fundamentals-8th/dp/0132354764/ref=pd_sim_b_1 – 2010-05-19 00:23:08

0

其实这些教程多次引用Netbeans,但通常还会告诉你如何在代码中做东西。一旦你很好地掌握了Swing在一般情况下的工作方式,你可能会在需要的时候阅读其中的每一个。

例如Using Swing Components对每个标准UI组件都有(或多或少)深入说明,并且Laying Out Componnents有关于标准布局管理器的详细信息。

这些是 - 至少对我来说 - 我回到最多的东西。和Netbeans分享一个非常简短的接触,我再也没有碰过它的GUI构建器。

0

我认为你应该先学习语言。使用IDE可以提高效率,但是如果您需要使用其他IDE,我认为可能会导致问题出现。我觉得这本书非常有用,Introduction to Java Programming。书中的所有例子都在代码中。

+0

这本书看起来只是针对Java,但它具体是Swing我正在学习,我已经对Java有合理的把握了 – Paul 2010-05-18 23:21:33

+0

它也有专门讨论Swing的话题。以及如何执行具有相对基本GUI的应用程序。你可以用它作为Swing的入门介绍。 – npinti 2010-05-18 23:26:33

1

本教程主要是关于代码。这实际上只是关于NetBeans的一章。其余部分是关于Swing的,可以在任何IDE中完成。

我不会推荐使用GUI构建器,因为就像你说的,你不会理解底下发生了什么。从简单的Windows开始,通过添加GUI组件并与它们进行交互逐渐地工作。了解MVC做事方式的优点。

我可以给的最好的建议是不要坐下来“学习”摆动。选择一个你感兴趣的项目,你可以使用Swing。考虑到工作计划的目标,你会更好地汲取教程给出的教训。

+1

恕我直言,这是Swing最大的缺点之一。它被认为是如此复杂,以至于没有GUI生成器能够有效地应对它,并且仍然允许开发人员按照自己的意愿去做。在使用Swing编写UI的许多小时之后,我仍然不知道如何构建代码,使其仍然可读和可维护。 – Joey 2010-05-18 23:21:02

+0

是的,这是我的想法。我正在考虑制作一个非常简单的游戏(或者可能是第一个简单的游戏),我认为Swing会为此工作。 – Paul 2010-05-18 23:23:19

1

看起来你是一个初学者在荡秋千。我会建议不要依靠Netbeans来开发swing UI。尝试仅通过编写代码来设计UI。这将改进你的知识基础,然后如果你愿意,你可以使用可用的GUI构建器。

1

我从来没有发现GUI构建器在Java中非常有用。 NetBeans有一个非常好的,但我强烈建议你建立自己的图形用户界面。

另一方面,你可能会发现Swing GU有些冗长。还有其他选择,Java-FX显然有一种声明性语言,您可以在使用Java编写所有其他语言时定义您的GUI。

此外,Groovy在Swing上有一个很好的声明性语法层,可以在开始时让事情变得容易一些。

如果您想试用Swing,我建议您在Groovy或BeanShell中使用它。这是一个真正快速只是键入:

f=new JFrame("My Frame") 
f.setVisible(true) 
f.setSize(300,600) 

并看到你的框架显示在屏幕上。 (Groovy和Beanshell都很好地处理Java语法 - 它不像你没有学习Swing - 它更像是你在翻译中学习它而不是编译器...

顺便说一句,如果你不'不想使用Java语法的Groovy 与像这样的东西(我可能是错误的只是一点点)

f=new JFrame(name="My Frame", visible=true, size=[300,600]) 

从而改变它由3周或4线下降到一个语句可以使其easer。

+0

如果您认为编写Swing GUI很繁琐,那么您应该开始考虑创建自己的辅助方法/类。 – Mot 2010-08-01 15:16:53

+0

@mklhmnn我总是这样做,但是我正在和一个看起来很像Java的人说话。 – 2010-08-02 17:26:34

1

我总是在学习新的框架,最好的低级方式

  1. 如果我必须使用命令行编译源文件,学习新的编程语言已被证明是最适合我的。使用像xCode这样的IDE使得它更难以理解基础知识
  2. 我学习了解Eclipse平台的基本概念非常困难,因为几乎所有的教程都只是告诉你点击Eclipse GUI。没有最新的教程告诉要添加到什么XML文件以及这些东西如何组合在一起。幸运的是,这对Swing来说要简单得多。

因此我的建议:不要使用GUI构建器学习,因为它隐藏了所有这有助于真正了解发生了什么重要的事情。使用一个好的Java/Swing教程并开始输入你的应用程序。了解基础知识后,可以使用GUI构建器进行原型设计。