mapping the tzs

19
James A. Rome TGA August 2009 Mapping the TZs

Upload: kenyon

Post on 05-Jan-2016

26 views

Category:

Documents


0 download

DESCRIPTION

Mapping the TZs. James A. Rome TGA August 2009. In Java it is quite easy to do maps. The only way to tell if we interpolated the data successfully is to plot it. We will see that we can use canned jar (Java archive) files to do most of the work We will use our ZOB48 project too… - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Mapping the TZs

James A. Rome

TGA

August 2009

Mapping the TZs

Page 2: Mapping the TZs

In Java it is quite easy to do maps

The only way to tell if we interpolated the data successfully is to plot it. We will see that we can use canned jar (Java archive)

files to do most of the work We will use our ZOB48 project too… We will learn how to create a simple graphical user

interface (GUI). In Java, it is as easy (or easier) to create a GUI for a

program than to do things on the command line

Create a new Java Desktop Application Call it MapApp Create a package called mapapp

Page 3: Mapping the TZs

The GUI for MapApp

I followed the tutorials at:http://today.java.net/pub/a/today/2007/10/30/building-maps-into-swing-app-with-jxmapviewer.html

http://today.java.net/pub/a/today/2007/11/13/mapping-mashups-with-jxmapviewer.html

These use the JXMapViewer which you can get from http://www.swinglabs.org/

except that the site is almost always busy. Good thing I managed to download the files for us. We do not have to understand all of this API, so

long as the code in the examples works.

Page 4: Mapping the TZs

Create the new project

Page 5: Mapping the TZs

GUI design

Get rid of the status panel Click it in the

Inspector and hit Delete.

Also in the inspector Right-click

mainPanel, Set Layout, Border Layout

Make the Whole panel bigger

Page 6: Mapping the TZs

Delete the status bar code

Click the Source button in MapView.java. You will see many errors (red

bars on the right margin) Delete all the code in the

constructor after initComponents();

Delete the 5 associated variables at the bottom of the class

Right-click the imports and select Fix Imports to remove those used by the status bar code

Save the Project (Ctrl-s)

Page 7: Mapping the TZs

Border Layout

A LayoutManager controls the placement and size of Swing objects when the GUI is resized. Any Swing Container can

have a LayoutManager Center takes any space left

over after the other panes are made just big enough to hold their components.

You do not have to use all of the panes

North

South

Eas

tCenter

Page 8: Mapping the TZs

Start building the GUI

In the Palette, click Panel and drag it to the center of the gray area

Right-click it and rename it to mapPanel. It is always smart to rename the Swing objects so that you can refer to them easily in your code

the bottom-right Property Inspector, be sure that the Layout Direction has mapPanel in the Center

Right-click mainPanel and add a second panel. Rename it controlPanel, and set its Layout Direction to South

Page 9: Mapping the TZs

Control Panel Layout

Give the ControlPanel a GridLayout with 2 Columns and 1 Row (hit enter after editing any number in the Properties Panel to make it “stick”)

Add two more panels in the controlPanel by right-clicking it in the Inspector Call them leftPanel and rightPanel Notice that they each have the same

size inside controlPanel

We are aiming for a GUI that looks like the picture at right.

In the leftPanel the white rectangles are TextFields; the black text are Labels. The oval is a button

Page 10: Mapping the TZs

Fill the leftPanel

Drag components from the Palette (top-right) into the leftPanel. Notice that blue auto alignment and

anchor marks appear to help you Select the leftPanel and under

border, pick TitledBorder Label it “Center Lat/Lon” Make it bold (or colored)—it’s you

GUI

You can select multiple items (using shift-click), and then right-click to select Same Size, Width, to make the TextFields the same size

Be sure to rename all the elements as shown

Page 11: Mapping the TZs

Fill in the rightPanel

Again use a titled border We will use a List (JListBox) to display the flights Again, rename everything Do initialize the two textFields to the lat/lon over Ohio

Page 12: Mapping the TZs

Add the JXMapViewer JARs

Unzipswingx-ws-1.0-bin.zip

Copy the extracted lib folder and swingx-ws-1.0.jar to a new lib folder of the MapApp project

There are many ways of doing this, and I was fighting bugs: in Tools, Libraries, add a New

Library Call it JXMap Navigate to the project lib folder

and add all the jars in lib/cobundle, lib/optional, and swingx-ws-1.0.jar

Page 13: Mapping the TZs

Add the Library to MapApp

Right-click MapApp (in the Project Pane), and select Properties.

Under Libraries, click Add Library Navigate to JXMap and import it.

Page 14: Mapping the TZs

Also add our ZOB48.jar

Again, use the Library Manager to make a ZOB48 library that contains the ZOB48.jar file in the ZOB48/dist directory

Add it to MapApp Now we can use the tools we

have already built!

Page 15: Mapping the TZs

Drag JXMapKit to the GUI

Clean and build the project

Drag the JXMapKit class to the top pane of your GUI rename it flightXMapKit resize it to fit the upper

window (maybe with a small margin).

Change the Default Provider to OpenStreetMaps

Try building and running the GUI

Page 16: Mapping the TZs

Fix the MapView constructor

Coords inZOB48bndry.txt

Page 17: Mapping the TZs

Add Actions to the buttons

In Design View, right click each button and add an actionPerformed event

The GUI will pop into Source View to show you where to enter the code for the action

There will be errors still, (more code to come)

Keep right-clicking and do “Fix Imports” to get rid of the missing imports.

Note: I copied a lot of this code fromthe tutorial

Page 18: Mapping the TZs

The drawing code

Page 19: Mapping the TZs

Play with it

Try examining the course for many of the flights to get a feel for the ZOB48 traffic Not all flights are in

ZOB48 There is a lot of East-

West traffic The sector extends (a bit)

into Canada