// Se utilizeaza clasa vxvoltm2 pentru a afisa un voltmetru virtual
// De fiecare data, se reafiseaza imaginea de fundal
// Nu mai este necesara stergerea vechii trasari
package Vx_voltmetru;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
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_v2 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 vxvoltm2 vxvoltm_2;
private Random rand; // obiectul random
private double vr;
/**
* Constructorul implicit
*/
public vx_voltm_v2() {
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(75, 180, 150, 30));
but_1.setText("Afiseaza val");
but_1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
vxvoltm_2.afis_im("voltmeter.jpg");
vr=rand.nextDouble()*250.0;
vxvoltm_2.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_2 = new vxvoltm2(60,10,175,150,0,250.0,this);
vxvoltm_2.afis_im("voltmeter.jpg");
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 vxvoltm2
{
private int x1,y1,w,h;
double val,val_max;
private vx_voltm_v2 frm;
private Graphics desen = null;
private Image img = null;
vxvoltm2(int x1,int y1,int w, int h, double val, double val_max, vx_voltm_v2 frm)
{
this.x1 = x1;
this.y1 = y1;
this.w = w;
this.h = h;
this.val_max = val_max;
this.val = val;
this.frm = frm;
}
public void afis_im(String nume_i)
{
if (img==null){
img = frm.getImage(frm.getCodeBase(), nume_i);
}
if (desen==null){
desen = frm.getGraphics();
}
desen.drawImage(img, x1, y1, w, h, frm);
}
public void set_val(double val)
{
if (desen==null){
desen = frm.getGraphics();
}
desen.setColor(Color.RED);
desen.drawLine((int)(x1+(w/val_max)*val) ,y1+50, (int)(x1+w/2), y1+h-30);
desen.drawString(Integer.toString((int)val), x1+w-40, y1+h-8);
}
}
|