+ All Categories
Home > Documents > Using NetBeans IDE for Desktop Development2 Introduction Standards Resurgence of Swing Performance &...

Using NetBeans IDE for Desktop Development2 Introduction Standards Resurgence of Swing Performance &...

Date post: 17-Mar-2020
Category:
Upload: others
View: 6 times
Download: 0 times
Share this document with a friend
62
Using NetBeans IDE for Desktop Development Geertjan Wielenga http://blogs.sun.com/geertjan
Transcript

Using NetBeans IDEfor

Desktop Development

Geertjan Wielengahttp://blogs.sun.com/geertjan

2

Introduction

● Standards

● Resurgence of Swing● Performance & look and feel

● Delivery over the web

● Layout manager & GUI builder

● Development frameworks

3

Agenda

● Goals

● Matisse GUI Builder

● Framework 1: JSR-296 Tooling

● Framework 2: NetBeans Platform

● Conclusion

4

● 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

5

● Goals

● Matisse GUI Builder

● Framework 1: JSR-296 Tooling

● Framework 2: NetBeans Platform

● Conclusion

Agenda

6

GroupLayout

● Part of JDK 6

● Principles:● Independent dimensions

● Hierarchical groups

● Designed to suit GUI Builder needs

7

“Matisse” GUI Builder

● Professional quality layout easily done

● Intuitive drag & drop interface

● Guidelines

● Resize, align, optimal spacing

● Automatically resizes when localized

8

Demo

9

● Goals

● Matisse GUI Builder

● Framework 1: JSR-296 Tooling

● Framework 2: NetBeans Platform

● Conclusion

Agenda

10

public static void main(String args[]) {

// good luck!

}

Motivation for JSR-296

11

● Lifecycle support

● Resources

● Actions

● Tasks

● Session state

JSR-296 Features

12

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)

13

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)

14

● 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

15

● Goals

● Matisse GUI Builder

● Framework 1: JSR-296 Tooling

● Framework 2: NetBeans Platform

● Conclusion

Agenda

16

1.Generic Desktop Framework

2.Infrastructural Plumbing

3.Collection of Libraries

4.NetBeans Platform Tooling

NetBeans PlatformWhat is it?

17

Generic Desktop Framework

18

NetBeans Platform

19

Nuance Voice-XML

20

Fiorano Studio

21

Nokia: Mobile Network

22

Sketsa SVG Editor

23

VisualVM

24

AIOTrade

25

NetBeans IDE

26

JCae-CAD

27

MC4J JMX Console

28

JFugue Music Notepad

29

StudioSL: Oil Flow

30

Infrastructural Plumbing

31

Maybe this is your code:

32

Maybe this is you:

33

This should be you...

domain expertknowledge

34

Application “Plumbing”

● Windowing/docking system

● Architecture

● Lifecycle management

● Persistence

● Data management

● Consistent look & feel

● Distribution/update mechanism

35

Demo

36

Collection of Libraries

37

Javadoc

38

Libraries

● Window System API

● Actions API

● Options Window API

● Many Editor APIs

● Visual Library API

● ...and many more

39

Ways to get started

● Javadoc

● Tutorials

● Samples

● Blog entries

Tip: You can use the NetBeans libraries outside the NetBeans Platform

40

NetBeans Platform Tooling

41

Project wizards

42

Outline view

43

NetBeans Platform

44

Project wizards

45

File wizards

46

File wizards

● Actions API

● Datasystems API

● Module Install class

● Options Dialog API

● TopComponent class

● Wizard Descriptor class

47

Configuration

48

Editor

49

Dependencies

50

Dependencies

51

Contextual menus

52

Contextual menus

53

Branding

54

Branding

55

Branding

56

Samples

57

Demo: Porting

58

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.

59

● Goals

● Matisse GUI Builder

● Framework 1: JSR-296 Tooling

● Framework 2: NetBeans Platform

● Conclusion

Agenda

60

● 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

61

● Matisse GUI Builder

● http://www.netbeans.org/kb/trails/matisse.html

● http://weblogs.java.net/blog/tpavek

● Framework 2: NetBeans Platform

● http://platform.netbeans.org

● http://edu.netbeans.org/courses/nbplatform-certified-training/

● http://nbjfuguesupport.dev.java.net/

● http://netbeans.dzone.com

● http://blogs.sun.com/geertjan

Resources

62

Q/A


Recommended