Guest User

Untitled

a guest
Nov 25th, 2011
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.50 KB | None | 0 0
  1. //MtFrame.java
  2. import javax.swing.*;
  3.  
  4. import java.awt.*;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.awt.event.WindowAdapter;
  8. import java.awt.event.WindowEvent;
  9.  
  10. public class MyFrame extends JFrame implements ActionListener
  11. {
  12.     private final int DEFAULT_WIDTH = 640;
  13.     private final int DEFAULT_HEIGHT = 480;
  14.     private MyPanel drawingPanel;
  15.    
  16.     public static void main(String args[])
  17.     {
  18.         JFrame frame = new JFrame();
  19.         frame.setTitle("DrawPoly");
  20.         frame.setSize(350, 250);
  21.        
  22.         frame.addWindowListener(new WindowAdapter() {
  23.           public void windowClosing(WindowEvent e) {
  24.             System.exit(0);
  25.           }
  26.         });
  27.         Container contentPane = frame.getContentPane();
  28.         contentPane.add(new MyPanel(1));
  29.  
  30.         //frame.show();
  31.         frame.setVisible(true);
  32.        
  33.        
  34.         JFrame frm1 = new MyFrame();
  35.         frm1.setDefaultCloseOperation(EXIT_ON_CLOSE);
  36.         frm1.setVisible(true);
  37.        
  38.     }
  39.    
  40.     private void makeButton(JPanel p , String name , ActionListener target)
  41.     {
  42.         JButton b = new JButton(name);
  43.         p.add(b);
  44.         b.addActionListener(target);
  45.        
  46.     }
  47.    
  48.     public MyFrame()
  49.     {
  50.         drawingPanel = new MyPanel(3);
  51.        
  52.         setTitle("my frame");
  53.         setSize(DEFAULT_WIDTH, DEFAULT_WIDTH);
  54.        
  55.         JPanel panel = new JPanel(new GridLayout(8,1,0,30));
  56.            
  57.         for (int i =3;i<10;i++)
  58.         {
  59.             makeButton(panel, String.valueOf(i), this);
  60.         }
  61.         makeButton(panel, "Exit", this);
  62.         add(panel,BorderLayout.EAST);
  63.         add(drawingPanel, BorderLayout.CENTER);
  64.  
  65.     }
  66.  
  67.     @Override
  68.     public void actionPerformed(ActionEvent e) {
  69.         // TODO Auto-generated method stub
  70.         String buttonPressed =  e.getActionCommand();
  71.        
  72.         switch (buttonPressed) {
  73.         case "3":
  74.             drawingPanel.setPolyLines(3);
  75.             break;
  76.         case "4":
  77.             drawingPanel.setPolyLines(4);
  78.             break;
  79.         case "5":
  80.             drawingPanel.setPolyLines(5);
  81.            
  82.             break;
  83.         case "6":
  84.             drawingPanel.setPolyLines(6);
  85.             break;
  86.         case "7":
  87.             drawingPanel.setPolyLines(7);
  88.             break;
  89.         case "8":
  90.             drawingPanel.setPolyLines(8);
  91.             break;
  92.         case "9":
  93.             drawingPanel.setPolyLines(9);
  94.             break;
  95.         case "Exit":
  96.             System.exit(1);
  97.             break;
  98.  
  99.         default:
  100.             break;
  101.         }
  102.        
  103.     }
  104.      
  105.    
  106.    
  107. }
  108.  
  109.  
  110. //MyPanel.java
  111.  
  112. import java.awt.BasicStroke;
  113. import java.awt.Color;
  114. import java.awt.Graphics;
  115. import java.awt.Graphics2D;
  116. import java.awt.Polygon;
  117.  
  118. import javax.swing.*;
  119.  
  120. public class MyPanel extends JPanel
  121. {
  122.     private Polygon p = null;
  123.     private Color color = Color.RED;
  124.     private int _number;
  125.    
  126.  
  127.     public int get_number() {
  128.         return _number;
  129.     }
  130.  
  131.     public void set_number(int _number) {
  132.         this._number = _number;
  133.     }
  134.  
  135.     @Override
  136.     public void paintComponents(Graphics g)
  137.     {
  138.         Graphics2D g2 = (Graphics2D)g;
  139.        
  140.         g2.setStroke(new BasicStroke(10));
  141.         g2.setPaint(color);
  142.        
  143.         //setPolyLines(get_number());
  144.         Polygon p = new Polygon();
  145.         for (int i = 0; i < 5; i++)
  146.           p.addPoint((int) (100 + 50 * Math.cos(i * 2 * Math.PI / 5)),
  147.               (int) (100 + 50 * Math.sin(i * 2 * Math.PI / 5)));
  148.  
  149.         g2.drawPolygon(p);
  150.        
  151.         /*
  152.         if(p == null)
  153.             return;
  154.         g2.setStroke(new BasicStroke(10));
  155.         g2.setPaint(color);
  156.         g2.draw(p);
  157.         */
  158.        
  159.     }
  160.    
  161.     public void setPolyLines(int sides)
  162.     {
  163.         p = new Polygon();
  164.         int radius = 100;
  165.         for(int i=0;i<sides;i++)
  166.         {
  167.             int x =(int) (radius * Math.cos(i * 2 * Math.PI /5 ));
  168.             int y = (int) (radius * Math.sin(i*2*Math.PI/5));
  169.             p.addPoint(x, y);
  170.         }
  171.         repaint();
  172.     }
  173.    
  174.     public MyPanel(int sides)
  175.     {
  176.         //set_number(sides);
  177.        
  178.          
  179.        
  180.     }
  181.  
  182. }
  183.  
  184.  
Advertisement
Add Comment
Please, Sign In to add comment