Progetto da sistemare

di il
2 risposte

Progetto da sistemare

Qualkuno mi aiuta con java???
ho un programmino da sistemare..

2 Risposte

  • Re: Progetto da sistemare

    Posta il problema e il codice...
  • Re: Progetto da sistemare

    
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.geom.*;
    import javax.swing.JPanel;
    import java.awt.event.*;
    import java.util.*;
    
    public class AreaDisegno extends JPanel{
    	
    	private static final int BASE = 8;   	
    	private int x=-1;
    	private int y=-1;
    	private int x1=-1;
    	private int y1=-1;	
    	private int x2=-1;
    	private int y2=-1;		
    	private Ellipse2D.Double r1;
    	private Ellipse2D.Double r2;
    	private Ellipse2D.Double r3;			
    	private Line2D.Double l1;
    	private Line2D.Double l2;
    	private Line2D.Double l3;		
    	private Point2D.Double p1;		
    	private Point2D.Double p2;
    	private Point2D.Double p3;
                    private  double a;
                    private  double b;
                    private  double c;
       	
    	
    	public AreaDisegno(){
    
    		
    		this.addMouseListener(new MouseClickListener());	
    	}
    	 
    	
    	class MouseClickListener extends MouseAdapter{
    		public void mouseClicked (MouseEvent e){			
    						
    				if(x>-1)
    				{
    					if(x1>-1)
    					{
    						if(x2>-1)
    						{
    							
    						}
    						else
    						{
    							x2=e.getX();
    							y2=e.getY();
    				 
    							AreaDisegno tri= (AreaDisegno)e.getSource();
    							disegna(tri);
    							
    						}						
    					}
    					else
    					{
    						x1=e.getX();
    						y1=e.getY();
    						
    	
    					}
    				}
    				else
    				{
    					x=e.getX();
    					y=e.getY();					
    					
    					
    				}
    				
    			}
    		}	
    	
    	
    	public void disegna(AreaDisegno tri)
    	{
    	    Graphics g = tri.getGraphics();
    		Graphics2D g2 = (Graphics2D) g;
    		
    		Ellipse2D.Double r1 = new Ellipse2D.Double(x,y,BASE, BASE);
    		Ellipse2D.Double r2 = new Ellipse2D.Double(x1,y1,BASE, BASE);
    		Ellipse2D.Double r3 = new Ellipse2D.Double(x2,y2,BASE, BASE);						
    		Point2D.Double p1= new Point2D.Double(x,y);
    		Point2D.Double p2= new Point2D.Double(x1,y1);
    		Point2D.Double p3= new Point2D.Double(x2,y2);
    		Line2D.Double l1 = new Line2D.Double(p1,p2);
    		Line2D.Double l2 = new Line2D.Double(p2,p3);
    		Line2D.Double l3 = new Line2D.Double(p3,p1);
    						
    	    g2.draw(r1);
    		g2.fill(r1);
    	    g2.draw(r2);
    		g2.fill(r2);
    	    g2.draw(r3);
    		g2.fill(r3);
    		g2.draw(l1);
    		g2.draw(l2);
    		g2.draw(l3);
    		
    		
    	}
    	
    		
    	public void paintComponent(Graphics g){
    		super.paintComponent(g);
    		Graphics2D g2 = (Graphics2D) g;
    
    	    g2.draw(r1);
    		g2.fill(r1);
    	    g2.draw(r2);
    		g2.fill(r2);
    	    g2.draw(r3);
    		g2.fill(r3);
    		
    	}
    	
    
    	
    	public double perimetro(double a, double b, double c){
    	    a=p1.distance(p2);
    	    b=p2.distance(p3);
    	    c=p1.distance(p3);
    	    
    	    double p;
    	    return p = a+b+c;
    
    		
    				
    	}
    	
    	public void cancella(){
    		x=x1=x2=y=y1=y2=-1;
    		updateUI();
    		return;
    
    	
    			
    	}		
    }
    
    
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    
    class Finestra extends JFrame
    {
    	private final AreaDisegno disegno;
    
    	private JButton calcola_area;
    	private JButton perimetro;	
    	private JButton mediane;
    	private JButton baricentro;			
    	private JButton cancella;
    	private JPanel pannello_pulsanti;
    
    
    	
    		
    	public Finestra(){
    		
    		disegno = new AreaDisegno();
    		disegno.setBackground(Color.white);
            
            calcola_area= new JButton("Calcola l'area");
            mediane= new JButton("Trova mediane"); 
            baricentro= new JButton("Trova baricentro");     
            
            perimetro= new JButton("Calcola il perimetro");
            perimetro.addActionListener (new PerimetroActionListener());             
         
            cancella= new JButton("Cancella");
            cancella.addActionListener (new CancellaActionListener());        
            
            pannello_pulsanti = new JPanel();
    
            
    
            pannello_pulsanti.add(calcola_area);
            pannello_pulsanti.add(perimetro);        
            pannello_pulsanti.add(mediane);  
            pannello_pulsanti.add(baricentro);           
            pannello_pulsanti.add(cancella);	
    			
            this.add(BorderLayout.CENTER,disegno);
    		
            this.add(BorderLayout.NORTH,pannello_pulsanti);
            this.setTitle("Triangoli");
            this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
            this.setExtendedState(MAXIMIZED_BOTH);
            this.setVisible(true);			
    		
    		
    
    
            			
    	}
    	
    	class PerimetroActionListener implements ActionListener {
    		public void actionPerformed (ActionEvent evt){
    			perimetro();
    			
    		}
    		
    		public void perimetro(){
    			
    			JOptionPane.showMessageDialog(null, "Devi prima disegnare un triangolo!");
    		
    				
    	            perimetro();
    	            				
    				JOptionPane.showMessageDialog(null, "Il perimetro è" );
    			
    		}	
    			
    
    	}
    	
    	class CancellaActionListener implements ActionListener {
    		public void actionPerformed (ActionEvent evt){ 
    			cancella();			
    		}
    		
    		public void cancella(){
    			disegno.cancella();
    			disegno.updateUI();
    			return;
    
    		}
    
    	}
    	
    		
    	
    }
    
    public class Main
    {
    	public static void main(String[] args)
    	{
    		Finestra finestra= new Finestra();
    	}
    }

    Ecco il progetto, ora devo creare i metodi che calcolano il perimetro, l'area, le mediane, e il baricentro e poi far si ke vengano invocati ogni volta che premo il pulsante corrispondente. Come fare?
Devi accedere o registrarti per scrivere nel forum
2 risposte