Buscamos un experto en programación Java para escribir un programa de despertador
Uno que he hecho antes:
importar java.awt.*;
importar java.awt.event.*;
import java.util.*;
importar javax.swing.*;
importar javax.swing.Timer;
la clase pública Clock extiende JFrame implementa ActionListener {
public final int HEIGTH = 200, L0 = 50, T0 = 50,N=8;
public final double RAD = Math.PI / 180.0;
int x, y, viejo_X, viejo_Y, r, x0, y0, w, h, ang;
int sdo, mdo, hdo, viejo_M, viejo_H, hh, mm, ss;
int demora = 1000;
Calendario ahora;
Cadena st, alarma, Elementos1, Elementos2,str[];
JButton jb; p>
JComboBox jc1, jc2, jc3;
JLabel jl1, jl2, jl3, jl4;
JMenu jm1, jm2, jm3, jm4;
JMenuBar jmb;
JMenuItem jmi1, jmi2, jmi3, jmi4, jmi5, jmi6, jmi7, jmi8, jmi9,jmi10;
JTextField jtf1, jtf2, hora;
JPanel jp1, jp2, jp3;
Temporizador;
TimeZone tz = TimeZone.getTimeZone("JST");
Kit de herramientas kit de herramientas = Kit de herramientas .getDefaultToolkit();;
/**
*
* Descripción del método: Métodos que deben sobrecargarse para implementar la clase ActionListener p>
*/
public static void main(String[] args) {
Reloj cp = new Clock();
cp.setVisible (verdadero);
}
Reloj() {
super("¡Despertador Java! ");
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setSize(550, 700);
setVisible(true);
Contenedor contentPane = getContentPane();
jp2 = new JPanel();
jmb = new JMenuBar();
jm1 = new JMenu("Color de fondo Establecer", verdadero);
jm
i1 = new JMenuItem("color del anillo exterior");
jmi1.addActionListener(this);
jmi1.setActionCommand("color1");
jm1 .add(jmi1);
jmi2 = new JMenuItem("Color del borde del despertador");
jmi2.addActionListener(this);
jmi2.setActionCommand ( "color2");
jm1.add(jmi2);
jmi3=new JMenuItem("Color del chasis");
jmi3.addActionListener(este ) ;
jmi3.setActionCommand("color3");
jm1.add(jmi3);
jmi4=new JMenuItem("Color de fondo de la hora del sistema" );
jmi4.addActionListener(this);
jmi4.setActionCommand("color4");
jm1.add(jmi4);
jmb.add(jm1);
jm2 = new JMenu("Configuración del color del puntero", verdadero);
jmi5 = new JMenuItem("Color de segunda mano");
jmi5.addActionListener(this);
jmi5.setActionCommand("color5");
jm2.add(jmi5);
jmi6 = new JMenuItem("color del minutero");
jmi6.addActionListener(this);
jmi6.setActionCommand("color6");
jm2. add(jmi6);
jmi7 = new JMenuItem("color de la manecilla de hora");
jmi7.addActionListener(this);
jmi7.setActionCommand ("color7 ");
jm2.add(jmi7);
jmb.add(jm2);
jm3 = new JMenu("Configuración de sonido de alarma ", verdadero);
jmi8 = new JMenuItem("ring1");
jmi8.addActionListener(this);
jmi8.setActionCommand("ring1" );
jm3.add(jmi8);
jmi9 = new JMenuItem("Mute");
jmi9.addActionListener(this);
jmi9.setActionCommand("ring2");
jm3.add(jmi9);
jmb.add(jm3);
jm4 = nuevo JMenu("Ayuda", verdadero);
> jmi10=new JMenuItem("Instrucciones de uso");
jmi10.addActionListener(this);
jmi10.setActionCommand("ayuda");
jm4 .add(jmi10);
jmb.add(jm4);
jp2.add(jmb);
contentPane.add(jp2, BorderLayout. NORTE);
jp3 = new JPanel();
jl1 = new JLabel("Hora de alarma");
jl1.setFont(new Font(" KaiTi_GB2312", Font.BOLD, 18));
tiempo = new JTextField("00:00", 5);
alarma = time.getText();
jb = new JButton("Modificar hora de alarma");
jb.addActionListener(this);
jb.setActionCommand("CC");
jp3.add(jl1);
jp3.add(time);
jp3.add(jb);
contentPane add(jp3). , BorderLayout.SOUTH);
ClockPanel reloj = new ClockPanel();
contentPane.add(reloj, BorderLayout.CENTER);
// Agregar evento escuchando el formulario para escuchar la activación del cronómetro
ActionListener taskPerformer = new ActionListener() {
public void actionPerformed(ActionEvent evt) {
repaint ( );
}
};
nuevo temporizador(retraso, taskPerformer).start();
}
/**
*
* Descripción del método: Dibujar gráficos
*/
Color C1 = Color .lightGray;//Color anillo exterior
Color C2 = Color.black;//Color borde
Color C3 = Color.magenta;//Color placa interior
Color C4 = Color.azul;//Color de fondo
Color C5 = Color.amarillo;//Color de segunda mano
Color C6 = Color.verde;//Minuto color de la manecilla
p>Color C7 = Color.red;//Color de la manecilla del reloj
public class ClockPanel extiende JPanel {
public void paint(Gráficos g) {
h = getSize().height - 200;
//Dibujar un círculo
g.setColor(C1);
g.
fillOval(L0 + 30, T0 + 30, h - 60, h - 60);
g.setColor(C2);
g.drawOval(L0 + 31, T0 + 31, h - 62, h - 62);
g.setColor(C3);
g.fillOval(L0 + 50, T0 + 50, h - 100, h - 100);
g.setColor(C2);
g.drawOval(L0 + 51, T0 + 51, h - 102, h - 102);
r = h/2 - 30;
x0 = 30 + r - 5 + L0;
y0 = 30 + r - 5 - T0;
ang = 60;
for (int i = 1; i <= 12; i++) {
x = (int) ((r - 10) * Math.cos( RAD * ang) + x0);
y = (int) ((r - 10) * Math.sin(RAD * ang) + y0);
g.drawString( "" + i, x, h - y);
ang -= 30;
}
x0 = 30 + r + L0;
y0 = 30 + r + T0;
g.drawString("Reloj analógico", 215, 200);
// Obtener la hora
ahora = Calendar.getInstance();
hh = now.get(Calendar.HOUR_OF_DAY);// hora
mm = now.get(Calendar.MINUTE);/ / Minutos
ss = now.get(Calendar.SECOND);// Segundos
g.setColor(C4);
g.fillRect(5, 550, 150, 30);// Rectángulo relleno
g.setColor(C6);
if (hh < 10)
st = "0 " + hh;
else
st = "" + hh;
si (mm < 10)
st = st + " :0" + mm;
else
st = st + ":" + mm;
if(alarm.equals(st)) p >
{
if(toolkit!=null)
toolkit.beep()
else {}
}
if (ss < 10)
st = st + ":0" + ss;
else
st = st + ":" + ss;
{
g.setFont(nueva fuente("华文楷体", Font.BOLD, 16))
;
g.drawString("Tiempo del sistema:" + st, 10, 570);
}
// La relación entre el tiempo de cálculo y los gráficos
sdo = 90 - ss * 6;
mdo = 90 - mm * 6;
hdo = 90 - hh * 30 - mm / 2; p >
// Borrar segundero
if (old_X > 0) {
g.setColor(C3);
} else { p >
old_M = mdo;
old_H = hdo;
}
// Dibujar segunda mano
g.setColor (C5 );
x = (int) ((r - 26) * Math.cos(RAD * sdo) + x0);
y = (int) ((r - 26 ) * Math.sin(RAD * sdo) + y0) - 2 * T0;
g.drawLine(x0, y0, x, (h - y));
old_X = x;
old_Y = y;
// Borrar manecillas de minutos y horas
if (mdo != old_M) {
g.setColor(C3);
old_M = mdo;
}
if (hdo != old_H) {
g. setColor(C3);
old_H = hdo;
}
// Dibujar el minutero
g.setColor(C6) );
x = (int) ((r - 50) * Math.cos(RAD * mdo) + x0);
y = (int) ((r - 50 ) * Matemáticas .sin(RAD * mdo) + y0) - 2 * T0;
g.drawLine(x0, y0, x, (h - y));
/ / Dibujar manecilla de hora
g.setColor(C7);
x = (int) ((r - 90) * Math.cos(RAD * hdo) + x0);
y = (int) ((r - 90) * Math.sin(RAD * hdo) + y0) - 2 * T0;
g.drawLine(x0, y0, x , (h - y));
} // finalizar la pintura
}
// Juicio e implementación de la hora de alarma
// Implementación de alarma del tono de llamada
public void actionPerformed(ActionEvent e) {
// JMenuItem m = (JMenuItem) e.getSource();
if (e .getActionCommand() == "CC") {
int newHou, newMin;
char c;
String getTime = JOptionPane.showInputDia
log(this, "Ingrese el formato de hora de la alarma como:", "00:00");
repaint();
//Si deshace la hora establecida, ¿Qué se imprimirá? null
if(getTime==null)
System.out.println(getTime);
// dispose();
juez: if (getTime != null) {
//Imprime la hora establecida de entrada
System.out.println(getTime);
// Determinar si la entrada tiene 5 caracteres
if (getTime.length() != 5) {
JOptionPane.showMessageDialog(time, "Error de formato\nPor favor ingrese según el formato 5 dígitos", "Error",
JOptionPane.ERROR_MESSAGE);
repaint();
romper juez;
}
// Determina si la entrada es un número
for (int i = 0; i < (getTime.length()); i++) {
c = getTime.charAt(i);
if (i == 2 && !Character.isDigit(c))
continuar;
// Determina el carácter actual, si no es un número, salta del evento
if (i != 2 && !Character.isDigit(c)) {
JOptionPane .showMessageDialog(this, "Error de formato\n Ingrese 5 dígitos según el formato",
"Error",JOptionPane.ERROR_MESSAGE);
repaint();
juez de ruptura;
}
}
char[] hora = { getTime.charAt(0), getTime.charAt(1) } ;
char[] minuto = { getTime.charAt(3), getTime.charAt(4) };
newHou = Integer.parseInt(String.valueOf(hora));
newMin = Integer. parseInt(String.valueOf(minuto));
if (newHou >= 24 || newHou < 0) {
JOptionPane. showMessageDialog(this, "Error de formato\nLa hora debería ser un número positivo que no sea menor que 0 ni mayor que 23",
"Error", JOptionPane.ERROR_MESSAGE);
repintar();
juez de ruptura;
}
if (newMin
>= 60 || newHou < 0) {
JOptionPane.showMessageDialog(this, "Error de formato\nEl minuto debe ser un número positivo menor que 60", "Error",
JOptionPane .ERROR_MESSAGE);
repintar();
romper juez;
}
nuevo SetTime(newHou, newMin); p> p>
}
}
if (e.getActionCommand() == "ring1") {
toolkit=Toolkit.getDefaultToolkit(
}
if(e.getActionCommand() == "ring2"){
System.out.println("Silenciar");
toolkit=null;
}
if (e.getActionCommand() == "color1") {
Color de cadena;
Color c;
System.out.println("color1");
color = JOptionPane.showInputDialog(this, "Ingrese su color de anillo exterior favorito (0 --255)", "128");
if (color == null) {
} else {
if (Integer.parseInt (color ) < 0
|| Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "Ingrese su color de anillo exterior favorito (0--255) ", "128");
else {
c = nuevo Color(Integer.parseInt(color));
C1 = c;
}
}
}
if(e.getActionCommand() == "color2"){
Cadena color;
Color c;
System.out.println("color2");
color = JOptionPane.showInputDialog(this, "Ingrese su favorito color del borde (0--255)", "128");
if(color==null){}
else{if (Integer.parseInt(color) < 0 || Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "Ingrese su color de borde favorito (0--255)", "128");
más {
c = nuevo Color(Integer.parseInt(color)
);
C2 = c;
}
}
}
if(e.getActionCommand( ) == "color3"){
Color de cadena;
Color c;
System.out.println("color3");
color = JOptionPane.showInputDialog(this, "Ingrese su color de disco interno favorito (0--255)", "128");
if(color==null){} p >
else{if (Integer.parseInt(color) < 0|| Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "Ingrese su color de disco interno favorito ( 0- -255)", "128");
else {
c = nuevo Color(Integer.parseInt(color));
C3 = c;
}
}
}
if(e.getActionCommand() == "color4"){
Color de cadena;
Color c;
System.out.println("color4");
color = JOptionPane.showInputDialog(this, "Ingrese su color de fondo favorito (0--255)", "128");
if(color==null){}
else{if (Integer.parseInt (color ) < 0|| Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "Ingrese su color de fondo favorito (0--255)", "128");
else {
c = nuevo Color(Integer.parseInt(color));
C4 = c;
}
}
}
if(e.getActionCommand() == "color5"){
Color de cadena;
Color c;
System.out.println("color5");
color = JOptionPane.showInputDialog(this, "Ingrese su color de segunda mano favorito (0--255 )", "128");
if(color==null){}
else{if (Integer.parseInt(color) < 0|| Integer.parseInt(color ) > 255 )
JOptionPane.showInput
Dialog(this, "Ingrese su color de segunda mano favorito (0--255)", "128");
else {
c = new Color(Integer.parseInt( color ));
C5 = c;
}
}
}
si(e. getActionCommand () == "color6"){
Color de cadena;
Color c;
System.out.println("color6"); p >
color = JOptionPane.showInputDialog(this, "Ingrese su color de manecilla de minutos favorito (0--255)", "128");
if(color==null){} p>
else{if (Integer.parseInt(color) < 0|| Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "Ingrese su minutero favorito color (0 --255)", "128");
else {
c = new Color(Integer.parseInt(color));
C6 = c ;
}
}
}
if(e.getActionCommand() == "color7"){
Color de cadena;
Color c;
System.out.println("color7");
color = JOptionPane.showInputDialog( this, " Ingrese su color de manecilla de hora favorito (0--255)", "128");
if(color==null){}
else{if ( Integer.parseInt(color) < 0|| Integer.parseInt(color) > 255)
JOptionPane.showInputDialog(this, "Ingrese su color de manecilla de hora favorito (0--255)", "128 "); p>
else {
c = nuevo Color(Integer.parseInt(color));
C7 = c;
}
}
}
if(e.getActionCommand() == "ayuda"){
Ayuda de cadena; p>
ayuda = JOptionPane.showInputDialog(this, "Ingrese salir para salir del uso de este despertador", "Este es un reloj analógico que se ejecuta en Java");
if(help.equals ("salir"))
disponer();
> else {}
// timer.restart();
}
}
clase SetTime {
Hora de cadena;
Minuto de cadena;
public SetTime() { }
public SetTime(int hora, int minuto) {
// Cuando el parámetro de tiempo es menor que 10, agrega el carácter 0 delante
if (hora < 10) {
Hora = "0" + String.valueOf( hora);
} else {
Hora = "" + String.valueOf(hora);
}
if (minuto); < 10) {
Minuto = "0" + String.valueOf(minuto);
} else {
Minuto = "" + String.valueOf( minuto
}
alarma = Hora + ":" + Minuto;
time.setText(alarm);
repintar); ();
}
}
}