300 likes | 432 Views
Datalogi A 6: 13/10. CS A. 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{
E N D
Datalogi A 6: 13/10 CS A
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); } }
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); .. }
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);
Java swing components Windows and components
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
Horizontal boxes and glue JBox.hbox(…)
Vertical box JBox.vbox(..)
Borders Examples:
Making borders t1.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: events How to get information about user input.