Arkanium77

GrEditor

Nov 28th, 2016
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.94 KB | None | 0 0
  1. package greditor;
  2.  
  3. import java.awt.*;
  4. import java.awt.event.*;
  5.  
  6. class myListener implements WindowListener, ActionListener, MouseListener, MouseMotionListener {
  7.  
  8.     Fr1 f;
  9.  
  10.     myListener(Fr1 f) {
  11.         this.f = f;
  12.     }
  13.  
  14.     public void windowClosing(WindowEvent ev) {
  15.         System.exit(0);
  16.     }
  17.  
  18.     public void windowActivated(WindowEvent ev) {
  19.     }
  20.  
  21.     public void windowClosed(WindowEvent ev) {
  22.     }
  23.  
  24.     public void windowDeactivated(WindowEvent ev) {
  25.     }
  26.  
  27.     public void windowDeiconified(WindowEvent ev) {
  28.     }
  29.  
  30.     public void windowIconified(WindowEvent ev) {
  31.     }
  32.  
  33.     public void windowOpened(WindowEvent ev) {
  34.     }
  35.  
  36.     public void actionPerformed(ActionEvent ae) {
  37.         String tmp = f.figure;
  38.         f.figure = ((Button) ae.getSource()).getLabel().trim();
  39.         f.m.setText(f.figure);
  40.  
  41.         if (f.figure.equals("Очистить")) {
  42.             Graphics g = (f.p1).getGraphics();
  43.             g.setColor(f.cB);
  44.             g.fillRect(0, 0, f.p1.getWidth(), f.p1.getHeight());
  45.         } else if (!f.figure.equals("Линия") && !f.figure.equals("Окружность") && !f.figure.equals("Прямоугольник")) {
  46.             for (int i = 0; i < f.cb.length; i++) {
  47.                 //System.out.println(i);
  48.                 if (f.figure.equals("" + i)) {
  49.                     //System.out.println(i);
  50.                     f.cF = f.cm[i];
  51.                     break;
  52.                 }
  53.             }
  54.             f.figure = tmp;
  55.         }
  56.  
  57.     }
  58.  
  59.     public void mouseEntered(MouseEvent me) {
  60.     }
  61.  
  62.     public void mouseClicked(MouseEvent me) {
  63.     }
  64.  
  65.     public void mousePressed(MouseEvent me) {
  66.         f.X = f.X1 = me.getX();
  67.         f.Y = f.Y1 = me.getY();
  68.     }
  69.  
  70.     public void mouseReleased(MouseEvent me) {
  71.     }
  72.  
  73.     public void mouseExited(MouseEvent me) {
  74.     }
  75.  
  76.     public void mouseMoved(MouseEvent me) {
  77.     }
  78.  
  79.     public void mouseDragged(MouseEvent me) {
  80.         Graphics g = ((Panel) me.getSource()).getGraphics();
  81.         int x, x1, y, y1;
  82.         if (f.figure.equals("Линия")) {
  83.             //Color c = f.cF;
  84.             g.setColor(f.cB);
  85.             g.drawLine(f.X, f.Y, f.X1, f.Y1);
  86.             g.setColor(f.cF);
  87.             f.X1 = me.getX();
  88.             f.Y1 = me.getY();
  89.             g.drawLine(f.X, f.Y, f.X1, f.Y1);
  90.             f.m.setText(f.figure + "  (" + f.X + "," + f.Y + ") - (" + f.X1 + "," + f.Y1 + ")");
  91.         }
  92.         if (f.figure.equals("Окружность")) {
  93.             g.setColor(f.cB);
  94.             if (f.X1 < f.X) {
  95.                 x1 = f.X;
  96.                 x = f.X1;
  97.             } else {
  98.                 x1 = f.X1;
  99.                 x = f.X;
  100.             }
  101.             if (f.Y1 < f.Y) {
  102.                 y1 = f.Y;
  103.                 y = f.Y1;
  104.             } else {
  105.                 y1 = f.Y1;
  106.                 y = f.Y;
  107.             }
  108.             g.drawOval(x, y, x1 - x, y1 - y);
  109.             g.setColor(f.cF);
  110.             f.X1 = me.getX();
  111.             f.Y1 = me.getY();
  112.             if (f.X1 < f.X) {
  113.                 x1 = f.X;
  114.                 x = f.X1;
  115.             } else {
  116.                 x1 = f.X1;
  117.                 x = f.X;
  118.             }
  119.             if (f.Y1 < f.Y) {
  120.                 y1 = f.Y;
  121.                 y = f.Y1;
  122.             } else {
  123.                 y1 = f.Y1;
  124.                 y = f.Y;
  125.             }
  126.             g.drawOval(x, y, x1 - x, y1 - y);
  127.  
  128.             f.m.setText(f.figure + "  (" + f.X + "," + f.Y + ") - (" + f.X1 + "," + f.Y1 + ")");
  129.         }
  130.         if (f.figure.equals("Прямоугольник")) {
  131.             g.setColor(f.cB);
  132.             g.drawRect(f.X, f.Y, f.X1 - f.X, f.Y1 - f.Y);
  133.             g.setColor(f.cF);
  134.             f.X1 = me.getX();
  135.             f.Y1 = me.getY();
  136.             g.drawRect(f.X, f.Y, f.X1 - f.X, f.Y1 - f.Y);
  137.             f.m.setText(f.figure + "  (" + f.X + "," + f.Y + ") - (" + f.X1 + "," + f.Y1 + ")");
  138.         }
  139.     }
  140.  
  141. } // к классу myListener
  142.  
  143. class Fr1 extends Frame {
  144.  
  145.     Panel p, p1, p2, p3, p4;
  146.     Button bt1, bt2, bt3, bt4;
  147.     Button[] cb = new Button[8];
  148.     Color[] cm = {Color.RED, Color.ORANGE, Color.YELLOW, Color.blue, Color.CYAN, Color.GREEN, Color.black, Color.WHITE};
  149.     Label m;
  150.     String figure = "";
  151.     int X = 0, Y = 0, X1 = 0, Y1 = 0;
  152.     Color cF = Color.black, cB = Color.white;
  153.  
  154.     Fr1(String s) {
  155.         super(s);
  156.         for (int i = 0; i < cb.length; i++) {
  157.             cb[i] = new Button("" + i);
  158.         }
  159.         p = new Panel();
  160.         p1 = new Panel();
  161.         p2 = new Panel();
  162.         p3 = new Panel();
  163.         p4 = new Panel();
  164.         bt1 = new Button("  Окружность  ");
  165.         bt2 = new Button("  Прямоугольник  ");
  166.         bt3 = new Button("  Линия  ");
  167.         bt4 = new Button("  Очистить  ");
  168.         m = new Label(" Заголовок! ");
  169.         add(p);
  170.         p.setLayout(new BorderLayout());
  171.         p.add(m, BorderLayout.NORTH);
  172.         p.add(p1, BorderLayout.CENTER);
  173.         p.add(p2, BorderLayout.SOUTH);
  174.         p.add(p3, BorderLayout.EAST);
  175.         p3.add(p4, BorderLayout.NORTH);
  176.         p2.add(bt1);
  177.         p2.add(bt2);
  178.         p2.add(bt3);
  179.         p2.add(bt4);
  180.         myListener ml = new myListener(this);
  181.         p4.setLayout(new GridLayout(4, 2, 1, 1));
  182.         for (int i = 0; i < cm.length; i++) {
  183.             p4.add(cb[i]);
  184.             cb[i].setBackground(cm[i]);
  185.             cb[i].setForeground(cm[i]);
  186.             cb[i].addActionListener(ml);
  187.         }
  188.         addWindowListener(ml);
  189.         bt1.addActionListener(ml);
  190.         bt2.addActionListener(ml);
  191.         bt3.addActionListener(ml);
  192.         bt4.addActionListener(ml);
  193.         p1.addMouseListener(ml);
  194.         p1.addMouseMotionListener(ml);
  195.     }
  196. }  // к классу Fr1
  197.  
  198. public class GrEditor {
  199.  
  200.     public static void main(String[] args) {
  201.         Fr1 f = new Fr1("Моя программа");
  202.         f.setSize(600, 600);
  203.         f.setVisible(true);
  204.     }
  205.  
  206. }
Add Comment
Please, Sign In to add comment