%PDF-1.4
%âãÏÓ
1 0 obj<>endobj
2 0 obj<>endobj
3 0 obj<>endobj
4 0 obj<>endobj
5 0 obj<>endobj
6 0 obj<>endobj
7 0 obj<>endobj
8 0 obj<>stream
€endstream
endobj
9 0 obj<]/Interpolate true/Width 1/Height 1/BitsPerComponent 1/Length 1 >>stream
endstream
endobj
10 0 obj<>stream
€endstream
endobj
11 0 obj<]/Interpolate true/Width 1/Height 1/BitsPerComponent 1/Length 1 >>stream
endstream
endobj
12 0 obj<>endobj
13 0 obj<>endobj
14 0 obj<>endobj
15 0 obj<>endobj
16 0 obj<>endobj
17 0 obj<>endobj
18 0 obj<>endobj
19 0 obj<>endobj
20 0 obj[13 0 R
15 0 R
17 0 R
19 0 R]endobj
21 0 obj<>endobj
22 0 obj<>endobj
23 0 obj<>endobj
24 0 obj<>endobj
25 0 obj[22 0 R
24 0 R]endobj
26 0 obj<>endobj
27 0 obj<>endobj
28 0 obj<>endobj
29 0 obj<>endobj
30 0 obj<>endobj
31 0 obj<>endobj
32 0 obj<>endobj
33 0 obj<>/XObject<>>>/Annots 20 0 R>>endobj
34 0 obj<>stream
q
1 0 0 1 36 36 cm
0.00 0.00 0.00 RG
0.0 648.4 m 11.6 648.4 l S
11.6 648.4 m 45.5 648.4 l S
45.5 648.4 m 67.8 648.4 l S
67.8 648.4 m 90.1 648.4 l S
90.1 648.4 m 108.8 648.4 l S
108.8 648.4 m 135.9 648.4 l S
135.9 648.4 m 175.4 648.4 l S
66.3 635.2 m 87.4 635.2 l S
87.4 635.2 m 130.5 635.2 l S
378.2 594.9 m 393.7 594.9 l S
393.7 594.9 m 400.7 594.9 l S
400.7 594.9 m 429.7 594.9 l S
q 0.8 0 0 1.6 0.0 587.5 cm
/I11 Do Q
q 0.8 0 0 0.8 0.8 588.3 cm
/I11 Do Q
125.9 115.1 m 319.7 115.1 l S
BT
/F9 17 Tf 0 681 Td 0.000 Tc(XML)Tj
/F4 11 Tf 0 -31.571 Td(UI Design with Java and XML Toolkits)Tj
0 -13.2 Td(Contributed by Dan Wellman)Tj
0 -13.2 Td(2006-09-13)Tj
/F8 9 Tf 0 -16.282 Td(With GoToMyPC\256, the award-winning remote-access solution, you\222ll never have to take files on the road again. GoToMyPC gives you)Tj
0 -10.8 Td(the power to access your PC from airports, hotels, Internet cafes \226 anywhere with Web access. Try it FREE.)Tj
/F4 11 Tf 0 -31.082 Td(XML has revolutionized application UI design in recent years. With a cunning blend of XML and script languages such as)Tj
0 -13.2 Td(JavaScript, rich, aesthetically pleasing applications can be quickly constructed with ease. We've looked at Widgets and)Tj
0 -13.2 Td(XUL as two examples of this in the past and now, I'm going to take a look at some of the innovative Java UI toolkits that)Tj
0 -13.2 Td(implement XML as an integral mechanism for application II design. Please note, this is the first part of a two-part article.)Tj
0 -26.4 Td(A quick trip to Google shows just how many Java XML UI toolkits there are around now. Many of these toolkits are)Tj
0 -13.2 Td(open source, which is great news for developers, and for people that just want to get involved or to learn the basics of)Tj
0 -13.2 Td(application design. There are also a growing number of full-fledged applications designed to give you an interface of)Tj
0 -13.2 Td(your own in which to design and produce interfaces. The fact that these applications exist at all show that Java and XML)Tj
0 -13.2 Td(GUIs are the answer that many developers have been looking for.)Tj
0 -26.4 Td(In addition to Java/XML UI toolkits, other specifications are also being developed to make use of XML in GUI)Tj
0 -13.2 Td(development, like XAML \(eXtensible Application Markup Language\), a language that defines UI objects in XML and)Tj
0 -13.2 Td(renders them using the WPF \(Windows Presentation Foundation\), which is the new presentation API in the .Net)Tj
0 -13.2 Td(framework 3.0. So, there are quite a few different UI toolkits you can choose from. Whatever associated technologies you)Tj
0 -13.2 Td(have experience with or want to gain experience in, there is bound to be a toolkit or IDE you can use. Make sure you've)Tj
0 -13.2 Td(got the latest Java Development Kit \(JDK\) rather than just the standard Java Runtime Engine \(JRE\) before attempting to)Tj
0 -13.2 Td(use any of the UI toolkits.)Tj
0 -26.4 Td(It would seem to be the next logical step for people that have comfortably used XUL to create add-ins for Mozilla or)Tj
0 -13.2 Td(FireFox, or even mini desktop applications. Whereas XUL must mostly run within either browser, Luxor is an embedded)Tj
0 -13.2 Td(XUL engine that is combined with Java to produce rich desktop applications, including the very popular LimeWire)Tj
0 -13.2 Td(peer-to-peer program. Because specifying the user interface in XUL is so easy, constructing a functional and attractive)Tj
0 -13.2 Td(interface can be done very quickly -- much quicker, and with greatly simplified code in fact than in writing the whole)Tj
0 -13.2 Td(application in Java.)Tj
0 -26.4 Td(You can also make use of several of the main attractions of XUL; CSS styling which allows a simple mechanism for)Tj
0 -13.2 Td(creating a visual theme for your app, and the skinnability that many users desire, as well as the localizational properties of)Tj
0 -13.2 Td(XUL. JavaScript can be utilized effectively for the simple functions of an interface, but Java gives you more power than)Tj
0 -13.2 Td(Javascript and has been claimed as being easier to learn with a cleaner syntax. JavaScript is also less appropriate outside)Tj
0 -13.2 Td(of a browser environment. )Tj
0 -26.4 Td(For those of you that aren't interested in learning Java, there is also Luxilla, which is a Luxor development environment)Tj
0 -13.2 Td(you can use without knowing/coding a single line of Java. Luxor is free, open source and released under the GPL. A)Tj
0 -13.2 Td(Luxor web site does exist, at http://luxor-xul.sourceforge.net/index.html, but don't expect anything more than a very basic)Tj
0 -13.2 Td(site. There is little real information for anyone wanting to get started with Luxor, and no introductory tutorials that guide)Tj
0 -13.2 Td(you through the installation process or use. )Tj
0 -26.4 Td(Luxor comes in the form of an executable .JAR file, much like most of Mozilla/FireFox, which contains the swing class)Tj
0 -13.2 Td(files used to render the UI objects on screen. Luxor enthusiasm does seem to be at a low ebb at present, the latest)Tj
0 -13.2 Td(distribution being around 18 months old. I have to admit, in the time I allocated to playing around with each of the Java)Tj
/F8 11 Tf 0 672.136 Td(Dev Articles)Tj
419.528 0 Td(01/06/2007 01:38:02 PM)Tj
-157.173 -709 Td(1/3)Tj
ET
Q
endstream
endobj
35 0 obj<>/XObject<<>>>>/Annots 25 0 R>>endobj
36 0 obj<>stream
q
1 0 0 1 36 36 cm
0.00 0.00 0.00 RG
122.8 303.2 m 266.1 303.2 l S
224.2 52.4 m 300.6 52.4 l S
BT
/F4 11 Tf 0 687 Td 0.000 Tc(XML toolkits I looked at, I didn't manage to get Luxor working at all.)Tj
0 -26.4 Td(Because XUL is such an easy to use subset of XML, there have been a lot of projects to incorporate XUL into the Java)Tj
0 -13.2 Td(platform. One of these projects is: JXUL, designed to create a cross-platform execution engine for XUL, so that it can be)Tj
0 -13.2 Td(used without the need for Mozilla to run, or even be present, on a user's system. Nothing seems to have happened with)Tj
0 -13.2 Td(this project for some years now, and it seems to have been superseded by Xulux, although very little information exists for)Tj
0 -13.2 Td(this, so what has happened to it now I couldn't say.)Tj
0 -26.4 Td(SwiX)Tj
/F4 8 Tf 25.058 6 Td(ml)Tj
/F4 11 Tf 8.448 -6 Td( is a small GUI generating engine, released under the Apache Software License that uses plain XML files to)Tj
-33.506 -13.2 Td(specify UI components. It's just 40KB in size, is fast and focuses on just generating GUIs. The XML files are parsed by)Tj
0 -13.2 Td(the generator at runtime and the UI elements described are rendered into javax.swing objects. You still need to have)Tj
0 -13.2 Td(knowledge of swing \(which means you have less to learn if you already know it\), but you are able to completely separate)Tj
0 -13.2 Td(the GUI construction from the program logic \(which as we all know is a good thing for programmers of any discipline to)Tj
0 -13.2 Td(do\). )Tj
0 -26.4 Td(SwiX)Tj
/F4 8 Tf 25.058 6 Td(ml)Tj
/F4 11 Tf 8.448 -6 Td( was created by Wolf Paulus in 2003, and I'm guessing that no development has been done for a little while as the)Tj
-33.506 -13.2 Td(copyright statement on the SwiX)Tj
/F4 8 Tf 144.826 6 Td(ml)Tj
/F4 11 Tf 8.448 -6 Td( site reads 2003 - 2005. Nevertheless, you can download version 1.5 and install it)Tj
-153.274 -13.2 Td(relatively easily. I found that before it would install correctly, however, I had to add a new environment variable to set the)Tj
0 -13.2 Td(JAVA_HOME variable. )Tj
0 -26.4 Td(To do this on a Windows XP platform, open the control panel, open the System applet, go to the Advanced tab and open)Tj
0 -13.2 Td(Environment Variables. Click the new button and in the Variable field type JAVA_HOME and in the Value field enter)Tj
0 -13.2 Td(C:Program FilesJavajdk1.5.0_08 provided that is where Java is installed \(this is separate from the addition to the existing)Tj
0 -13.2 Td(Path variable that you may also have set at some point prior to using SwiX)Tj
/F4 8 Tf 328.757 6 Td(ml)Tj
/F4 11 Tf 8.448 -6 Td(\). Once this is done, you can unpack the)Tj
-337.205 -13.2 Td(SwiX)Tj
/F4 8 Tf 25.058 6 Td(ml)Tj
/F4 11 Tf 8.448 -6 Td( zip file and double click the build.bat file to install it, which will create the SwiX)Tj
/F4 8 Tf 359.304 6 Td(ml)Tj
/F4 11 Tf 8.448 -6 Td( jar file library and you can)Tj
-401.258 -13.2 Td(begin.)Tj
0 -26.4 Td(JAXX \(it doesn't actually stand for anything but you can guess at a glance that Java and XML are involved\) is probably)Tj
0 -13.2 Td(the best toolkit in terms of documentation; there is an excellent, well produced, well maintained and most importantly,)Tj
0 -13.2 Td(recently updated web site at http://www.jaxxframework.org/ which gives you everything you need to know to begin)Tj
0 -13.2 Td(creating UIs with JAXX. There is a thorough installation guide and some excellent tutorials to get you started and a live)Tj
0 -13.2 Td(forum for if you get stuck and need some assistance. )Tj
0 -26.4 Td(One of the things that makes JAXX so useful is its powerful CSS support which enables the skinning of applications via)Tj
0 -13.2 Td(simple style sheets. It is very easy to get started with JAXX; I was able to run through the tutorials and get results on)Tj
0 -13.2 Td(screen very quickly. My experiment GUIs didn't actually do anything as there was no underlying Java to make things)Tj
0 -13.2 Td(work, but it was good just to get something to actually launch. It's easy to look through the example applications provided)Tj
0 -13.2 Td(to see what is going on and how to use the different tags effectively. Out of all of the toolkits I looked at, this was without)Tj
0 -13.2 Td(doubt the easiest to begin using.)Tj
0 -26.4 Td(Thinlet is another well know Java and XML UI toolkit that differentiates from some of the previous examples by avoiding)Tj
0 -13.2 Td(swing altogether and using the abstract window toolkit \(AWT\) instead. AWT is an older set of UI designing widgets that)Tj
0 -13.2 Td(swing was developed to replace. One of the key differences between AWT and swing is the nature of how each toolkit)Tj
0 -13.2 Td(renders the various GUI elements, with swing providing more consistency across any platform as opposed to AWT)Tj
0 -13.2 Td(relying more on the underlying OS implementation. )Tj
0 -26.4 Td(What Thinlet does is provide an extremely small toolkit that excels at creating relatively simple interfaces, when the)Tj
0 -13.2 Td(complexity of some swing components can be avoided. The documentation for Thinlet is quite good, providing a local)Tj
0 -13.2 Td(copy of what can be found on the Thinlet website \(www.thinlet.com\), including details of the widgets themselves and the)Tj
0 -13.2 Td(API. There are some examples included in the documentation \(including an excellent Amazon browser\) that you can fire)Tj
0 -13.2 Td(up and look at to get an idea of how things work. )Tj
/F8 11 Tf 0 682 Td(Dev Articles)Tj
419.528 0 Td(01/06/2007 01:38:02 PM)Tj
-157.173 -709 Td(2/3)Tj
ET
Q
endstream
endobj
37 0 obj<>/XObject<<>>>>>>endobj
38 0 obj<>stream
q
1 0 0 1 36 36 cm
0.93 0.93 0.93 rg 0.0 447.2 540.0 79.2 re f
BT
0.00 0.00 0.00 rg /F4 11 Tf 0 687 Td 0.000 Tc(Thinlet is free and open source for anyone from enthusiasts to commercial enterprises and was released under the GNU)Tj
0 -13.2 Td(Lesser Public License. There are some extensive Thinlet tutorials out there, but the documentation included requires a)Tj
0 -13.2 Td(working knowledge of Java and presumes familiarity with class compilation, CLASSPATH variables and more so this is)Tj
0 -13.2 Td(probably not best suited to newcomers to Java application programming. People that already have a working knowledge)Tj
0 -13.2 Td(of Java may be attracted to Thinlet's simplicity.)Tj
0 -26.4 Td(These are just some of the available resources out there for building XML based GUIs for your Java applications,)Tj
0 -13.2 Td(providing an easily maintainable application with a completely separate presentation layer. You can save valuable)Tj
0 -13.2 Td(development time this way, and there are a variety of toolkits you can use depending on what suits you and your)Tj
0 -13.2 Td(experience level.)Tj
/F5 11 Tf 0 -52.8 Td(DISCLAIMER:)Tj
/F4 11 Tf ( The content provided in this article is not warrantied or guaranteed by Developer Shed, Inc. The content)Tj
0 -13.2 Td(provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts,)Tj
0 -13.2 Td(and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and)Tj
0 -13.2 Td(implementation best practices. We are not liable for any negative consequences that may result by implementing any)Tj
0 -13.2 Td(information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify)Tj
0 -13.2 Td(your hardware.)Tj
/F8 11 Tf 0 259.6 Td(Dev Articles)Tj
419.528 0 Td(01/06/2007 01:38:02 PM)Tj
-157.173 -709 Td(3/3)Tj
ET
Q
endstream
endobj
39 0 obj<>0<>]>>>>endobj
xref
0 40
0000000000 65535 f
0000000015 00000 n
0000000179 00000 n
0000001745 00000 n
0000001819 00000 n
0000001897 00000 n
0000001974 00000 n
0000002050 00000 n
0000002131 00000 n
0000002263 00000 n
0000002455 00000 n
0000002588 00000 n
0000002782 00000 n
0000002885 00000 n
0000002969 00000 n
0000003046 00000 n
0000003131 00000 n
0000003379 00000 n
0000003464 00000 n
0000003538 00000 n
0000003623 00000 n
0000003667 00000 n
0000003727 00000 n
0000003812 00000 n
0000003866 00000 n
0000003950 00000 n
0000003980 00000 n
0000004012 00000 n
0000004044 00000 n
0000004160 00000 n
0000004201 00000 n
0000004242 00000 n
0000004283 00000 n
0000004349 00000 n
0000004586 00000 n
0000009946 00000 n
0000010113 00000 n
0000015747 00000 n
0000015909 00000 n
0000017885 00000 n
trailer
<<1af23c95747962884de7c44eb30426f4>]>>
startxref
18027
%%EOF