Datalogi A 6: 13/10. Java and swing Graphics programming: Windows with menus Buttons, textfields,...

30
Datalogi A 6: 13/10
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    221
  • download

    0

Transcript of Datalogi A 6: 13/10. Java and swing Graphics programming: Windows with menus Buttons, textfields,...

Datalogi A 6: 13/10

Java and swingGraphics programming:

• Windows with menus

• Buttons, textfields, scroll panels etc

• Animations, images,

• Events from mouse clicks, keyboard etc.

Can be quite complicated…

EmptyFrame.javaimport 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 windowpublic 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 FontCurrent Stroke (width of lines)Current Paint (color of areas)Current Transform (scaling, rotation,

deformation of drawings)Current Composite (new items can be made

partially transparentCurrent 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

Java swing componentsWindows and components

Example

JLabelA bit of text and/or an icon

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

JButtonA button you can press.

Text and/or an image (icon)

Radiobutton and checkboxPress to select or de-select

JTextFieldTextField: a line where you can enter text

using the keyboard.

JTextAreaTextArea: a multi-line area for entering text

JSliderA slider: select a value

By dragging a knob

JSpinnerSelect a value

by stepping through

a bounded range

of values

JComboBoxSelect a value from

a drop-down list

JListSelect an a value

or an interval

of values from

a list

Horizontal boxes and glueJBox.hbox(…)

Vertical boxJBox.vbox(..)

Split pane, scroll pane

Borders

Examples:

Making borderst1.setBorder(BorderFactory. createBevelBorder(BevelBorder.RAISED));t2.setBorder(BorderFactory. createEtchedBorder());t3.setBorder(BorderFactory. createMatteBorder(2,5,2,5,Color.red));t4.setBorder(BorderFactory. createTitledBorder("My Title"));b1.setBorder(BorderFactory. createLineBorder(Color.blue,4));

Next time: eventsHow to get information about user input.