View
223
Download
0
Tags:
Embed Size (px)
Citation preview
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); }}
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);
..}
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)
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);
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));