Computer Science A 11: 20/2

slimwhimperΛογισμικό & κατασκευή λογ/κού

3 Νοε 2013 (πριν από 3 χρόνια και 11 μήνες)

92 εμφανίσεις

Computer Science A 11: 20/2



Java and swing

Graphics programming:


Windows with menus


Buttons, textfields, scroll panels etc


Animations, images,


Events from mouse clicks, keyboard etc.


Can be quite complicated…

EmptyFrame.java

import javax.swing.JFrame;


public class EmptyFrame{


public static void main(String args[]){


JFrame frame=new JFrame("EmptyFrame");


frame.setSize(600,600);


frame.setDefaultCloseOperation(





JFrame.EXIT_ON_CLOSE);


frame.setVisible(true);


}

}

EmptyFrame



Add a canvas to the window

public static void main(String args[]){


JFrame frame=new JFrame();


frame.setSize(600,600);


frame.setTitle("DrawShapes");


frame.setDefaultCloseOperation(





JFrame.EXIT_ON_CLOSE);


JCanvas canvas = new JCanvas();


frame.add(canvas);


frame.setVisible(true);


..

}

Coordinate system:




drawLine(135,230,335,370)



drawOval(135,230,200,140)



What to draw on a canvas:


Line


Oval/ellipsis


Arcs (parts of an ellipsis


Rectangles


Curves, quadratic, qubic, bezier



Images


Text

The state when drawing:

Current Font

Current Stroke (width of lines)

Current Paint (color of areas)

Current Transform (scaling, rotation,
deformation of drawings)

Current Composite (new items can be made
partially transparent

Current clipping area. (limit the area in which
you can draw)

setFont(new Font("Serif",Font.BOLD,150));

drawString("(GyÑ)",50,200);



Paint


canvas.setPaint(Color.red);


canvas.fillRect(50,50,100,100);


canvas.setPaint(Color.blue);


canvas.fillOval(250,50,100,100);


canvas.setPaint(Color.green);


canvas.fillArc(450,50,100,100,45,270);



canvas.setPaint(new GradientPaint(


50,350,Color.red,450,350,Color.blue));


canvas.fillRect(50,300,500,100);

Paint



More to come

Transformations

Partially transparent

Images


Other components: buttons etc


Events from windows.

Java swing components

Windows and components

Example



JLabel

A bit of text and/or an icon





new JLabel(”Label 1”,new IconImage(..))

JButton

A button you can press.

Text and/or an image (icon)

Radiobutton and checkbox

Press to select or de
-
select


JTextField

TextField: a line where you can enter text
using the keyboard.

JTextArea

TextArea: a multi
-
line area for entering text




JSlider

A slider: select a value

By dragging a knob

JSpinner

Select a value

by stepping through

a bounded range

of values

JComboBox

Select a value from

a drop
-
down list

JList

Select an a value

or an interval

of values from

a list