Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package eg.edu.alexu.csd.oop.Drawer;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import javax.swing.*;
- public class View {
- /*Body of view */
- JFrame Body = new JFrame();
- /* menu bar */
- private JMenuBar menuBar ;
- private JMenu fileMenu ;
- private JMenuItem saveMenuItem , loadMenuItem;
- /* header and footer of view */
- JPanel header , footer ;
- /* Header or Drawing buttons (shapes and logic) */
- private JButton selectButton , moveButton , deleteButton , resizeButton ,
- rectButton , squareButton , lineButton , brushButton ,
- circleButton , ellipseButton , triButton , polygonButton ;
- private JRadioButton strokeRadioButton , fillRadioButton;
- private JButton selectingColor ;
- private Color curColor = Color.BLACK;
- private JSlider transSlider;
- private JLabel transLabel;
- /*Footer component*/
- JLabel stateScreen , xScreen , yScreen;
- JButton undoButton , redoButton;
- /**
- * instantiate all objects
- */
- private void createObjects () {
- menuBar = new JMenuBar();
- fileMenu = new JMenu("File");
- saveMenuItem = new JMenuItem("save");
- loadMenuItem = new JMenuItem("load");
- header = new JPanel();
- footer = new JPanel();
- selectButton = new JButton ("sel");
- moveButton = new JButton ("move");
- deleteButton = new JButton ("del");
- resizeButton = new JButton ("resize");
- rectButton = new JButton ("rect");
- squareButton = new JButton ("sq");
- lineButton = new JButton ("line");
- brushButton = new JButton ("brush");
- circleButton = new JButton ("cir");
- ellipseButton = new JButton ("elipse");
- triButton = new JButton ("tri");
- polygonButton = new JButton ("pol");
- strokeRadioButton = new JRadioButton("stroke", true);
- fillRadioButton = new JRadioButton("fill", false);
- ButtonGroup group = new ButtonGroup();
- group.add(strokeRadioButton);
- group.add(fillRadioButton);
- selectingColor = new JButton("choose color");
- selectingColor .addActionListener( new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- curColor = JColorChooser.showDialog(null,"choose color", curColor);
- if( curColor == null )
- curColor = Color.BLACK;
- }
- });
- transSlider = new JSlider();
- transLabel = new JLabel("Transparent: 1");
- stateScreen = new JLabel ("");
- xScreen = new JLabel ("X :");
- yScreen = new JLabel ("Y :");
- undoButton = new JButton("undo");
- redoButton = new JButton("redo");
- }
- /**
- * creating header of view
- */
- private void createHeader () {
- header.setLayout(new BoxLayout(header, BoxLayout.X_AXIS));
- JPanel buttonsGrid = new JPanel( new GridLayout (3, 4) );
- buttonsGrid.add(selectButton);
- buttonsGrid.add(moveButton);
- buttonsGrid.add(deleteButton);
- buttonsGrid.add(resizeButton);
- buttonsGrid.add(lineButton);
- buttonsGrid.add(brushButton);
- buttonsGrid.add(rectButton);
- buttonsGrid.add(squareButton);
- buttonsGrid.add(circleButton);
- buttonsGrid.add(ellipseButton);
- buttonsGrid.add(triButton);
- buttonsGrid.add(polygonButton);
- header.add(buttonsGrid);
- header.add( new JSeparator( SwingConstants.VERTICAL ) );
- buttonsGrid = new JPanel ( new GridLayout ( 2,1 ) );
- buttonsGrid.add(strokeRadioButton);
- buttonsGrid.add(fillRadioButton);
- header.add(buttonsGrid);
- header.add( new JSeparator( SwingConstants.VERTICAL ) );
- buttonsGrid = new JPanel ( new GridLayout ( 2,1 ) );
- buttonsGrid.add( selectingColor );
- // trans component
- JPanel trans = new JPanel( new FlowLayout() );
- trans.add(transLabel);
- trans.add(transSlider);
- buttonsGrid.add(trans);
- header.add(buttonsGrid);
- }
- /**
- * creating footer of View
- */
- private void createFooter () {
- footer.setLayout( new BorderLayout() );
- JPanel tempLayout = new JPanel ( new GridLayout (1,3) );
- tempLayout.add(stateScreen);
- tempLayout.add(xScreen);
- tempLayout.add(yScreen);
- footer.add(tempLayout);
- tempLayout = new JPanel ( new FlowLayout () );
- tempLayout.add(undoButton);
- tempLayout.add(redoButton);
- footer.add(tempLayout, BorderLayout.EAST);
- }
- private void addMenuBar () {
- fileMenu.add(saveMenuItem);
- fileMenu.add(loadMenuItem);
- menuBar.add(fileMenu);
- }
- public View () {
- Body = new JFrame () ;
- Body.setTitle("Drawer");
- createObjects();
- addMenuBar();
- createHeader();
- createFooter();
- Body.setJMenuBar(menuBar);
- Body.add(header , BorderLayout.NORTH);
- Body.add(new DrawingArea() , BorderLayout.CENTER );
- Body.add(footer , BorderLayout.SOUTH);
- Body.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
- Body.pack();
- Body.setVisible(true);
- }
- private class DrawingArea extends JPanel {
- public DrawingArea() {
- setBackground(Color.WHITE);
- }
- }
- public static void main ( String [] args ) {
- View obj = new View();
- }
- }
- // we gonna need it later
- ///**
- //* this function to create Buttons with draw lisnter
- //* @param name : this is name of Button
- //* @return JButton ret
- //*/
- //private JButton makeButtonWithDrawingLisnter ( final String name ) {
- // JButton ret = new JButton(name);
- //
- // ret.addActionListener(new ActionListener() {
- // public void actionPerformed(ActionEvent e) {
- // // draw here
- // System.out.println("Draw here");
- // }
- // });
- //
- // return ret ;
- //}
- //
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement