Clase JAVA


    Java dispune de numeroase clase cum ar fi clasa "Graphics", care permit realizarea de grafica in applet-uri.

  • Realizarea unei clase

        Mmediul de dezvoltare JAVA permite dezvoltarea de aplicatii bazate pe programarea obiect POO.
        Programarea obiect presupune utilizarea conceptelor: Concepte POO
  • Instrument virtual v1

        Vom realiza in continuare o serie de clase care ne vor ajuta sa realizam instrumentatii virtuale.
        Urmatoarea aplicatie realizeaza clasa "vxvoltm1" care traseaza o linie functie de o anumita valoare.


        In cazul ca nu se lanseaza aplicatia de sus, pe calculatorul d-voastra trebuie instalat pachetul JDC versiunea JDK6 sau mai recenta.

        Cum se realizeaza o clasa ?
    // Se utilizeaza clasa vxvoltm1 pentru a afisa un voltmetru virtual
    // Se afiseaza imagine de fundal
    // La prima rulare se deseneaza voltmetrul dupa care se traseaza numai valoarea
    // La fiecare trasare a valorii, se sterge vechea trasare.
    
    package Vx_voltmetru;
    
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Graphics;
    import java.awt.Rectangle;
    import java.awt.GridBagLayout;
    import javax.swing.JPanel;
    import javax.swing.JApplet;
    import javax.swing.JButton;
    import java.util.Random;
    
    
    public class vx_voltm_v1 extends JApplet {
    
    	private static final long serialVersionUID = 1L;
    	private JPanel c_panel_1 = null; 	// panel_1 cu controale plasate
    	private JPanel panel_1 = null; 		// panoul 1
    	private JButton but_1 = null; 		// butonul 1
    	private vxvoltm1 vxvoltm_1;
    	private Random rand;				// obiectul random 
    	private double vr;
    	private int af_v=0;
    
    	/**
    	 * Constructorul implicit 
    	*/ 
    	
    	public vx_voltm_v1() {
    		super();
    	}
    	
    	/**
    	 * Aceasta metoda initializeaza: this
    	 * 
    	 * @returneaza  void
    	 */
    	
    	public void init() {
    		this.setSize(320,270);
    		this.setContentPane(init_panel_1());
    	}
    
    	/**
    	 * 
    	 * Aceasta metoda creaza panelul: "but_1"	
    	 * Returneaza but_1 de tipul:	javax.swing.JButton
    	 */
    	
    	private JButton creaza_but_1() {
    		if (but_1 == null) {
    			but_1 = new JButton();
    			but_1.setBounds(new Rectangle(100, 180, 110, 30));
    			but_1.setText("Next_val");
    			but_1.addActionListener(new java.awt.event.ActionListener() {
    				public void actionPerformed(java.awt.event.ActionEvent e) {
    					if (af_v==0){
    						vxvoltm_1.af_vxvoltm();
    						af_v=1;
    					}
    					vr=rand.nextDouble()*250.0;
    					vxvoltm_1.set_val(vr);
    				}
    			});
    		}
    		return but_1;
    	}
    	/**
    	 * This method initializes jPanel	
    	 * 	
    	 * @return javax.swing.JPanel	
    	 */
    	
    	private JPanel creaza_panel_1() {
    		if (panel_1 == null) {
    			panel_1 = new JPanel();
    			panel_1.setLayout(new GridBagLayout());
    			panel_1.setBounds(new Rectangle(10, 10, 350, 150));
    		}
    		return panel_1;
    	}
    
    	/**
    	 * Aceasta metoda initializeaza panel_1 plasand controalele dorite 
    	 * Returneaza c_panel_1 de tipul: javax.swing.JPanel 
    	 */
    	
    	private JPanel init_panel_1() {
    		if (c_panel_1 == null) {
    			c_panel_1 = new JPanel();
    			c_panel_1.setLayout(null);
    			rand= new Random();
    			// se plaseaza un voltmetru la pozitia x1,y1,w,h,val,val_max
    			vxvoltm_1 = new vxvoltm1(60,10,175,150,0,250.0,this);
    			c_panel_1.add(creaza_but_1(), null);
    			c_panel_1.add(creaza_panel_1(), null);
    			c_panel_1.setLayout(new BorderLayout());
    		}
    		return c_panel_1;
    	}
    	
    }
    
    class vxvoltm1
    {
    	private int x1,y1,w,h;
    	double val,val_max;
    	private vx_voltm_v1 frm;
    	private Graphics  desen = null;
    	private double val_v;
    	
    	 vxvoltm1(int x1,int y1,int w, int h, double val, double val_max, vx_voltm_v1 frm)
    		{
    			this.x1 = x1;
    			this.y1 = y1;
    			this.w = w;
    			this.h = h;
    			this.val_max = val_max;
    			this.val = val;
    			this.frm = frm;
    			val_v=val;
    		}
    	 public void afis_im(String nume_i)
    	 	{
    		 	if (desen==null){
    		 		desen = frm.getGraphics();
    		 	}
    	 	}
    	 public void af_vxvoltm()
    		{
    	        if (desen==null){
    	        	desen = frm.getGraphics();
    	        }
    	        desen.setColor(Color.BLUE);
    	        desen.clearRect(x1, y1, w, h);
    	        desen.drawRect(x1, y1, w, h);
    	        desen.setColor(Color.RED);		
    		}
    	 public void set_val(double val)
    	 {
    		 if (desen==null){
    			 desen = frm.getGraphics();
    		 }
    		 desen.setColor(Color.white);
    		 // sterg textul
    		 desen.clearRect(x1+w-40, y1+h-20,40,10);
    		 // sterg vechea indicatie 
    		 desen.drawLine((int)(x1+(w/val_max)*val_v) ,y1+50, (int)(x1+w/2), y1+h-30);
    		 // desenez noua indicatie
    		 desen.setColor(Color.RED);
    		 desen.drawLine((int)(x1+(w/val_max)*val) ,y1+50, (int)(x1+w/2), y1+h-30);
    		 // scriu noul text
    		 desen.drawString(Integer.toString((int)val), x1+w-40, y1+h-10);
    		 val_v=val;
    	 } 
    }