Download presentation
Presentation is loading. Please wait.
Published byAlaina Harmon Modified over 8 years ago
1
Using NetBeans IDE for Desktop Development Geertjan Wielenga http://blogs.sun.com/geertjan
2
2 Agenda ● Goals ● Design: Matisse GUI Builder ● Medium Applications: JSR-296 Tooling ● Large Applications: NetBeans Platform ● Conclusion
3
3 ● Show that NetBeans IDE is the one-stop shop for all Swing desktop needs ● Ready out of the box, for applications of all sizes: ● Demo 1: Matisse GUI Builder ● Demo 2: Tooling for JSR-296 ● Demo 3: NetBeans Platform Goals
4
4 ● Goals ● Design: Matisse GUI Builder ● Medium Applications: JSR-296 Tooling ● Large Applications: NetBeans Platform ● Conclusion Agenda
5
5 GroupLayout ● Part of JDK 6 ● Principles: ● Independent dimensions ● Hierarchical groups ● Designed to suit GUI Builder needs
6
6 “Matisse” GUI Builder ● Professional quality layout easily done ● Intuitive drag & drop interface ● Guidelines ● Resize, align, optimal spacing ● Automatically resizes when localized
7
7 Demo
8
8 ● Goals ● Design: Matisse GUI Builder ● Medium Applications: JSR-296 Tooling ● Large Applications: NetBeans Platform ● Conclusion Agenda
9
9 public static void main(String args[]) { // good luck! } Motivation for JSR- 296
10
10 ● Lifecycle support ● Resources ● Actions ● Tasks ● Session state JSR-296 Features
11
11 import javax.swing.*; public class HelloWorldSwing { public static void main(String[] args) { JFrame frame = new JFrame("HelloWorldSwing"); final JLabel label = new JLabel("Hello World"); frame.getContentPane().add(label); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.pack(); frame.setVisible(true); } Lifecycle Support (On your own)
12
12 public class MyApp extends SingleFrameApplication { @Override protected void startup() { JLabel label = new JLabel("Hello World"); show(label); } public static void main(String[] args) { Application.launch(MyApp.class, args); } Lifecycle Support (With JSR-296)
13
13 ● Show all the other JSR-296 features in action. ● Integrate Flickr into a Swing desktop application based on JSR-296 using NetBeans tooling. Demo of JSR-296
14
14 ● Goals ● Design: Matisse GUI Builder ● Medium Applications: JSR-296 Tooling ● Large Applications: NetBeans Platform ● Conclusion Agenda
15
15 1.Generic Desktop Framework 2.Infrastructural Plumbing 3.Collection of Libraries 4.NetBeans Platform Toolkit NetBeans Platform What is it?
16
16 Agenda ● Goals 1.Generic Desktop Framework 2.Infrastructural Plumbing 3.Collection of Libraries 4.NetBeans Platform Toolkit
17
17 NetBeans Platform
18
18 Nuance Voice-XML
19
19 Fiorano Studio
20
20 Nokia: Mobile Network
21
21 Sketsa SVG Editor
22
22 VisualVM
23
23 AIOTrade
24
24 NetBeans IDE
25
25 JCae-CAD
26
26 MC4J JMX Console
27
27 JFugue Music Notepad
28
28 StudioSL: Oil Flow
29
29 Agenda ● Goals 1.Generic Desktop Framework 2.Infrastructural Plumbing 3.Collection of Libraries 4.NetBeans Platform Toolkit
30
30 Maybe this is your code:
31
31 Maybe this is you:
32
32 This should be you... domain expert knowledge
33
33 Application “Plumbing” ● Windowing/docking system ● Archictecture ● Lifecycle management ● Persistence ● Data management ● Consistent look & feel ● Distribution/update mechanism
34
34 Demo
35
35 Agenda ● Goals 1.Generic Desktop Framework 2.Infrastructural Plumbing 3.Collection of Libraries 4.NetBeans Platform Toolkit
36
36 Javadoc
37
37 Libraries ● Window System API ● Actions API ● Options Window API ● Many Editor APIs ● Visual Library API ●...and many more
38
38 Ways to get started ● Javadoc ● Tutorials ● Samples ● Blog entries Tip: Use them outside the NetBeans Platform
39
39 Agenda ● Goals 1.Generic Desktop Framework 2.Infrastructural Plumbing 3.Collection of Libraries 4.NetBeans Platform Toolkit
40
40 Project wizards
41
41 NetBeans Platform
42
42 Outline view
43
43 Project wizards
44
44 File wizards
45
45 File wizards ● Actions API ● Datasystems API ● Module Install class ● Options Dialog API ● TopComponent class ● Wizard Descriptor class
46
46 Configuration
47
47 Editor
48
48 While developing......enhance the IDE
49
49 Dependencies
50
50 Dependencies
51
51 Contextual menus
52
52 Contextual menus
53
53 Samples
54
54 Demo: Porting
55
55 Porting Demo Outline 1. Start with a simple application. 2. Compare what it is to what the NetBeans Platform has. 3. Create a new plugin project. 4. Move the useful parts of our old application to our new plugin. 5. Run it.
56
56 Porting Guide http://platform.netbeans.org/http://platform.netbeans.org/tutorials/60/ nbm-porting-basic.html
57
57 ● Goals ● Design: Matisse GUI Builder ● Medium Applications: JSR-296 Tooling ● Large Applications: NetBeans Platform ● Conclusion Agenda
58
58 ● http://weblogs.java.net/blog/tpavek Resources
59
59 ● Ready out of the box, for applications of all sizes: ● Demo 1: Matisse GUI Builder ● Demo 2: Tooling for JSR-296 ● Demo 3: NetBeans Platform ● Showed that NetBeans IDE is the one- stop shop for all Swing desktop needs Conclusion
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.