MELJUN CORTES, MBA,MPA,BSCS,ACS

Java
Programming
(for designers)

MELJUN CORTES
What is a Program?
A list of detailed instructions that the computer carries out
To make a cup of coffee the following
wou...
Java is…
• Platform-independent X
• Apps for mobile phones and other X
consumer devices
• Secure, portable, multithreaded ...
Get started
• Two components:
– Java Virtual Machine (VM)
• Base for the Java platform, install Win version

– Java Applic...
Acronyms
• JDK or J2SE, Development Kit
– Set of Java development tools, consisting of
the API classes, a Java compiler, a...
Set up: Download the JDK
•

And set the classpath in Windows

Include the
directories where
you will run Java
apps
Set Up a Development
Environment
•
•

NetBeans IDE, JEdit, Eclipse, JCreator
Or use a simple text editor, and compile
and ...
Set Up
•
•

Download J2SE 5.0 Documentation
Look for useful libraries
Some Useful Libraries
•
•
•
•
•
•
•
•
•
•

Colt: or High Performance Scientific and Technical Computing
Weka 3: Data Minin...
Standard Java Libraries
•
•
•
•
•
•

Language
Maths
Graphics
2D
3D
File I/O

• JAI: Advanced
Networking
• Imaging
• XML
• ...
Swing
• GUI-control (widget) library in Java 2
• Built-in controls, flexible and customizable
• Features aimed at interfac...
Java 2D
• Standard drawing library in Java 2
• Drawing attributes
–
–
–
–

Fill patterns and images
Fonts
Line thicknesses...
Java 3D
• Extension to Java
– Not part of “core” Java language like Java 2D

• Built on Direct3D or OpenGL, depending on
p...
Java Versions
• Java 1.0, 1.1… “Java 2” refers to 1.2
onwards
• Popular: 1.4.2
• New: 1.5. The leading "1." is dropped, no...
Jargon
• Application is a stand-alone Java program
• Applet is a browser-based Java program
Basic Procedure
1.
2.
3.
4.
5.

Write a .java file
Compile it with the javac command
Now you have a .class file
Run it wit...
Running a Java Application
Write
Java
code

IDE or
Text
Editor

Run the
Java
compiler
'javac'

Java code:
MyProg.java

jav...
Java program layout
• A typical Java file looks like:
import java.awt.*;
import java.util.*;
public class SomethingOrOther...
What does it mean?
This line announces that the program
(class) can be run by anyone (public), is
called Greetings and is ...
A Java Class
• Java programs are collections of classes
• OOP:
– A class that represents a rectangle would
contain variabl...
An Applet is a Panel is a
Container… is an Object
java.lang.Object
|
+----java.awt.Component
|
+----java.awt.Container
|
+...
Object Oriented (OO)
Programming
A key aspect is Inheritance.
You don’t have to describe similar objects completely. You c...
What classes, why?
• A file can contain multiple classes, but
only one can be declared public, and that
one’s name must ma...
Methods
• Define a group of statements that
perform a particular operation
• With or without arguments
calculateArea(shape...
Primitives and Objects
• Java distinguishes two kinds of entities
– Primitive types
– Objects

• Primitive types: integers...
Expressions
•
•
•
•
•

Assignment statements: =, +=, *= etc.
Arithmetic uses the familiar + - * / %
Java uses ++ and -Java...
Control statements
if (x < y) smaller = x;
if (x < y){ smaller=x; sum += x;}
else { smaller = y; sum += y; }
while (x < y)...
The main method
• Every Java application must contain a
main method:
– public static void main(String[] args)

• An applic...
Example
An Evolutionary Design System
public static void main(String[] args) {
new Model();
}
public Model() {
EvoDesign frame = new EvoDesign();
frame.setVisib...
public EvoDesign() {
jbInit();
}
private void jbInit() throws Exception {
setSize(new Dimension(860,680));
setTitle("Evolu...
Image makeFitnessLines(Image im) {
LineGraph bg = new LineGraph();
bg.setDefaultLineThickness(0.1);
…
try {
new ImageOutpu...
public void setupGA() throws Exception {
fitnessHistory = new DoubleArrayList();
topFitness.clear();
Configuration conf = ...
public FitnessFn(int a) {
}
public int evaluate(Chromosome a) {
int fitness = 0;
Gene[] gs = a.getGenes();
if (EvoDesign.f...
public Colours01() {
setColorPalettes();
}
public static BufferedImage makeOutputImage() {
for (int i = 0; i < topSolution...
Code
• Get these slides and the source code for
the example at:
http://www.arch.usyd.edu.au/~rsos7705/programming.html
MELJUN CORTES Java Programming Designers
MELJUN CORTES Java Programming Designers
MELJUN CORTES Java Programming Designers
MELJUN CORTES Java Programming Designers
MELJUN CORTES Java Programming Designers
MELJUN CORTES Java Programming Designers
MELJUN CORTES Java Programming Designers
MELJUN CORTES Java Programming Designers
Upcoming SlideShare
Loading in...5
×

MELJUN CORTES Java Programming Designers

298

Published on

MELJUN CORTES Java Programming Designers

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
298
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
8
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

MELJUN CORTES Java Programming Designers

  1. 1. MELJUN CORTES, MBA,MPA,BSCS,ACS Java Programming (for designers) MELJUN CORTES
  2. 2. What is a Program? A list of detailed instructions that the computer carries out To make a cup of coffee the following would not be sufficient: 1.1. Go to kettle 1.2. Check kettle has water in it 1. Boil water 1.3. If not 2. Put coffee in cup 1.3.1 Take kettle to cold tap 3. Pour in hot water 1.3.2 Remove lid of kettle 4. Add milk 1.3.3 Put kettle under cold tap 1.3.4 Turn on tap 1.3.5 When kettle full turn off tap 1.3.6 Return kettle to worktop The instructions would have 1.4. Plug kettle into mains to be much more detailed: 1.5.Switch on electricity ……. You have to say exactly what to do in the right order with no ambiguity
  3. 3. Java is… • Platform-independent X • Apps for mobile phones and other X consumer devices • Secure, portable, multithreaded X • Online, server-side applications X? • Simple, Object oriented ☺ • GPL libraries ☺
  4. 4. Get started • Two components: – Java Virtual Machine (VM) • Base for the Java platform, install Win version – Java Application Programming Interface (API) • Prewritten code, organized into packages of similar topics. Each package or library contains classes and interfaces that you can call and extend. Example: – Rectangle2D = new Rectangle2D(loc, width, height) • http://java.sun.com/learning/new2java
  5. 5. Acronyms • JDK or J2SE, Development Kit – Set of Java development tools, consisting of the API classes, a Java compiler, and the Java virtual machine (VM) interpreter – The JDK is used to compile Java applications and applets. The most current version is the J2SE 5 • J2SE, Runtime Environment 5.0
  6. 6. Set up: Download the JDK • And set the classpath in Windows Include the directories where you will run Java apps
  7. 7. Set Up a Development Environment • • NetBeans IDE, JEdit, Eclipse, JCreator Or use a simple text editor, and compile and run from the command line
  8. 8. Set Up • • Download J2SE 5.0 Documentation Look for useful libraries
  9. 9. Some Useful Libraries • • • • • • • • • • Colt: or High Performance Scientific and Technical Computing Weka 3: Data Mining Software in Java JHotDraw is a two-dimensional graphics framework for structured drawing editors JGAP is a genetic algorithms component written in the form of a Java package OpenAI: a full suite of Artificial Intelligence components: Agents, Neural Nets, GAs… JUNG:Java Universal Network/Graph Framework JOONE: JGAP's genetic algorithms to evolve neural nets HyperGraph: to work with hyperbolic geometry and especially with hyperbolic trees Repast: an agent modeling toolkit (like Swarm) JExcel or JXL provides the ability to read, write, and modify Microsoft Excel spreadsheets
  10. 10. Standard Java Libraries • • • • • • Language Maths Graphics 2D 3D File I/O • JAI: Advanced Networking • Imaging • XML • Print
  11. 11. Swing • GUI-control (widget) library in Java 2 • Built-in controls, flexible and customizable • Features aimed at interface design – Buttons, tabbed panes, dockable toolbars, scroll panes, tooltips, tables, etc. • Look & feel can be changed
  12. 12. Java 2D • Standard drawing library in Java 2 • Drawing attributes – – – – Fill patterns and images Fonts Line thicknesses and dashing patterns Colour mixing rules and transparency • Transformations – Floating-point coordinate system – Mapping from memory coords to screen or printer coords – Affine transforms: translate, scale, rotate, and shear
  13. 13. Java 3D • Extension to Java – Not part of “core” Java language like Java 2D • Built on Direct3D or OpenGL, depending on platform • Scene-graph based model, not primarily immediate-mode rendering
  14. 14. Java Versions • Java 1.0, 1.1… “Java 2” refers to 1.2 onwards • Popular: 1.4.2 • New: 1.5. The leading "1." is dropped, now it is Java Platform Standard Edition 5.0 • But… version 5.0 also keeps the version number 1.5.0 in some places visible only to developers • This release is also known as “Tiger” (not the latest Mac OS X!)
  15. 15. Jargon • Application is a stand-alone Java program • Applet is a browser-based Java program
  16. 16. Basic Procedure 1. 2. 3. 4. 5. Write a .java file Compile it with the javac command Now you have a .class file Run it with the java command Voilá!
  17. 17. Running a Java Application Write Java code IDE or Text Editor Run the Java compiler 'javac' Java code: MyProg.java javac MyProg.java Bytecode: MyProg.class Execute the bytecode with the command 'java' java MyProg Save the file with a .java extension This creates a file of bytecode with a .class extension Output User to interact with the system Program to execute and produce a data set, graphs, etc.
  18. 18. Java program layout • A typical Java file looks like: import java.awt.*; import java.util.*; public class SomethingOrOther { // field and method definitions . . . } This must be in a file named SomethingOrOther.java !
  19. 19. What does it mean? This line announces that the program (class) can be run by anyone (public), is called Greetings and is an Applet. These 2 lines tell the computer to include (import) two standard libraries awt (Abstract Window Toolkit) and applet. import java.awt.*; import java.applet.Applet; This line declares what follows in the { } as a method called paint. public class Greetings extends Applet { } public void paint(Graphics g) { g.drawString("Hello World!", 50, 50); } This line tells the computer to display some text (a string) on the screen. This is what is displayed This is where it is displayed in pixels across and down from the top left hand corner
  20. 20. A Java Class • Java programs are collections of classes • OOP: – A class that represents a rectangle would contain variables for its location, its width, and its height – The class can also contain a method that calculates the area of the rectangle – An instance of the rectangle class could contain the information for a specific rectangle, such as the dimensions of a room
  21. 21. An Applet is a Panel is a Container… is an Object java.lang.Object | +----java.awt.Component | +----java.awt.Container | +----java.awt.Panel | +----java.applet.Applet …so you can do things with it that you’d do with applets, panels, containers, components, and objects.
  22. 22. Object Oriented (OO) Programming A key aspect is Inheritance. You don’t have to describe similar objects completely. You can define a superclass (sometimes called base class) that has the common attributes and methods and inherit these adding only the ones that are different. Vehicle Attributes: Speed, Colour Methods: Start, Stop These are inherited Attributes: Max Passengers Methods: Pick up Passengers Bus Lorry Attributes: Max Load Methods: Pick up Load
  23. 23. What classes, why? • A file can contain multiple classes, but only one can be declared public, and that one’s name must match the filename – Usually 1 class = 1 file • Most difficult part is to plan the program: the classes, the methods, the variables, the procedure – If you can define it in paper & pencil, the rest is easy
  24. 24. Methods • Define a group of statements that perform a particular operation • With or without arguments calculateArea(shape) { // here geom operations } createShape() { // new square... // calculateArea(square) }
  25. 25. Primitives and Objects • Java distinguishes two kinds of entities – Primitive types – Objects • Primitive types: integers, doubles, booleans, strings… • Objects are associated with reference variables which store an object’s address
  26. 26. Expressions • • • • • Assignment statements: =, +=, *= etc. Arithmetic uses the familiar + - * / % Java uses ++ and -Java has boolean operators && || ! Java has comparisons < <= == != >= >
  27. 27. Control statements if (x < y) smaller = x; if (x < y){ smaller=x; sum += x;} else { smaller = y; sum += y; } while (x < y) { y = y - x; } do { y = y - x; } while (x < y) for (int i = 0; i < max; i++) sum += i;
  28. 28. The main method • Every Java application must contain a main method: – public static void main(String[] args) • An application executes the main method first. The array of Strings can be empty or it can receive arguments to customise how the program runs (number of iterations, number of agents, etc).
  29. 29. Example An Evolutionary Design System
  30. 30. public static void main(String[] args) { new Model(); } public Model() { EvoDesign frame = new EvoDesign(); frame.setVisible(true); }
  31. 31. public EvoDesign() { jbInit(); } private void jbInit() throws Exception { setSize(new Dimension(860,680)); setTitle("Evolutionary Design"); jMenuFile.setText("File");… setJMenuBar(jMenuBar); JComboBox jGens… JList jListFns… JButton jRun… jTabs.addTabs… contentPane.add(…); } void jTabs_clicked(ChangeEvent e) { … } void jLists_mouseClicked(MouseEvent e) { … }
  32. 32. Image makeFitnessLines(Image im) { LineGraph bg = new LineGraph(); bg.setDefaultLineThickness(0.1); … try { new ImageOutput(im); out.render(bg); im = out.getImage(); } } void jMenuExit_actionPerformed(ActionEvent e) { System.exit(0); } class drawPanel extends JPanel { public void paint(Graphics g) { g.setFont(EvoDesign.myFont); g2.drawImage(new BufferedImage(0, 50, 2); } }
  33. 33. public void setupGA() throws Exception { fitnessHistory = new DoubleArrayList(); topFitness.clear(); Configuration conf = new DefaultConfiguration(); conf.addGeneticOperator( new MutationOperator(mut) ); conf.addGeneticOperator( new CustomCrossover(cross) ); FitnessFunction myFunc = new FitnessFn(chrom); conf.setFitnessFunction(myFunc); Gene[] g = new Gene[chrom]; g[0] = new BooleanGene(); g[i] = new IntegerGene(1, alle); Chromosome sampleChromosome = new Chromosome(g); conf.setSampleChromosome(sampleChromosome); conf.setPopulationSize(EvoDesign.pop); genPopulation = Genotype.randomInitialGenotype(conf); Chromosome best = genPopulation.getFittestChromosome(); }
  34. 34. public FitnessFn(int a) { } public int evaluate(Chromosome a) { int fitness = 0; Gene[] gs = a.getGenes(); if (EvoDesign.fnCrit.equals("minMean")) { fitness += ( EvoDesign.alle Descriptive.mean(sd) ); } return Math.max(1, fitness); }
  35. 35. public Colours01() { setColorPalettes(); } public static BufferedImage makeOutputImage() { for (int i = 0; i < topSolutions.size(); i++) { Chromosome s = topSolutions.get(i); for (int j = 0; j < s.size(); j++) { Gene si = s.getGene(j); g2.setColor( getAllele() .intValue()); g2.fillRect(boxX, boxY, stepX, 25); } } return bf; }
  36. 36. Code • Get these slides and the source code for the example at: http://www.arch.usyd.edu.au/~rsos7705/programming.html
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×