Clase Sensor
import javax.swing.*;
public class Sensor {
private int temp;
public Sensor(){
}
public void setTemp(int t) {
temp = t;
}
public int getTemp(){
return temp;
}
public void leerTemp(){
String aux;
aux = JOptionPane.showInputDialog("Ingrese el valor de la temperatura");
temp = Integer.parseInt(aux);
}
public static void main(String args[]){
Sensor s = new Sensor();
s.leerTemp();
System.out.println("Temperatura = "+s.getTemp());
}
}
------------------------------------------------------------------------------------
Clase interface2
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Interface2 extends JFrame {
public Interface2(){
super("Sistema de monitoreo de temperatura");
setSize(400,400);
show();
}
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.BLUE);
g.drawOval(100, 150, 100, 100);
g.setColor(Color.BLACK);
g.drawString("0 ºC", 200, 200);
g.drawString("360ºC", 200, 210);
g.drawString("Alerta", 150, 70);
g.drawOval(150, 100, 20, 20);
Sensor s = new Sensor();
s.leerTemp();
if (s.getTemp() > 0 & s.getTemp() < = 180){
g.setColor(Color.BLUE);
g.fillArc(100, 150, 100,100,360, s.getTemp());
g.drawString(s.getTemp() + " ºC", 150, 90);
g.setColor(Color.GREEN);
g.fillOval(150, 100, 20, 20);
}
if(s.getTemp() > = 180 & s.getTemp() < 270){
g.setColor(Color.PINK);
g.fillArc(100,150,100,100,360, s.getTemp());
g.drawString(s.getTemp() + " ºC",150,90);
g.setColor(Color.GREEN);
g.fillOval(150, 100, 20, 20);
}
if(s.getTemp() > = 270 & s.getTemp() < = 360){
g.setColor(Color.GREEN);
g.fillArc(100,150,100,100,360, s.getTemp());
g.drawString(s.getTemp()+" ºC", 150,90);
g.setColor(Color.RED);
g.fillOval(150, 100, 20, 20);
}
}
public static void main(String args[]){
Interface2 in = new Interface2();
in.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Resultados:
Caso 1:
Hola Caro tu programa esta bien pero tenias que hacer un velocímetro no un termómetro, todo lo mides en ºC, y debería ser en Km/h, ademas hay otra forma con la que puedes dar la posicion del circulo de esta forma:
ResponderEliminarif (s.getVel()>0 & s.getVel()<80{
g.setColor(Color.BLUE);
g.fillArc(100, 150,150,150,225,-(320-(315-s.getVel())));
g.setColor(Color.WHITE);
g.drawString(s.getVel()+" Km/h", 150, 220);
g.setColor(Color.GREEN);
g.fillOval(170, 100, 20, 20);
}
if(s.getVel()>=80 & s.getVel()<150){
g.setColor(Color.YELLOW);
g.fillArc(100, 150,150,150,225,-(320-(315-s.getVel())));
g.setColor(Color.WHITE);
g.drawString(s.getVel()+" Km/h",150, 220);
g.setColor(Color.GREEN);
g.fillOval(170, 100, 20, 20);
}
if(s.getVel()>=150 & s.getVel()<=240){
g.setColor(Color.RED);
g.fillArc(100, 150,150,150,225,-(320-(315-s.getVel())));
g.setColor(Color.WHITE);
g.drawString(s.getVel()+" Km/h", 150,220);
g.setColor(Color.RED);
g.fillOval(170, 100, 20, 20);
}
Hola Caro el trabajo era hacer un velocímetro y no un termómetro, las unidades deberían ser km/h, el contador se debería empezar a pintar desde la izquierda hacia la derecha como son las velocímetros de los autos tu lo tienes al revés.
ResponderEliminarRevisa el velocimetro en mi blog.
Hola Carito sabes le veo al programa y lo unico que veo raro es que tienes esto
ResponderEliminartemp = t;
y no lo utilizas en ningun lugar solo le utilizas a la Temp y no a t para que lo haces si no lo utilizas av aa a a a a a a
Hola Caro en tu programa podias utilizar este codigo para que al momento del ingreso de la Velocidad pinte tu grafico...
ResponderEliminarg.fillArc(100,150,150,150,225,-(320-r));
g.drawString(s.getVelocidad()+" km/h", 150,220);
y debes corregir lo de los grados tambien!