hola
una observacion que te hago, las clases en Java siempre se declaran con la primera letra en Mayuscula, esto por la estandarizacion de la codificacion en Java.
la funcion Unidad1ActionPerformed esta mal, por que vas a crear un frame nuevo cada ves que ocurra el evento, es decir si haces click 10 veces en el menu "graficar seno", te van a aparecer 10 ventanas "frames", y eso esta muy mal
lo que tienes que hacer es crear una sola ves, tu panel de grafica y actualizarlo de acuerdo al menu que se haya presionado
primeramente instanciamos el panel de la grafica y lo adicionamos al centro de nuestro Frame
Código java:
Ver originalprivate GraphingData graphics=null;
public Tarea() {
graphics = new GraphingData();
initComponents();
this.add(graphics,"Center");
}
en la clase GraphingData, van a exisitir dos metodos para graficar, uno va a ser drawSeno y drawCoseno
tenemos que tener dos atributos por ejemplo, un atributo de tipo booleano seno y otro coseno, y una funcion setSeno que nos va a permitir actualizar el valor del atributo seno.
Código java:
Ver originalprivate boolean seno;
private boolean coseno;
public void setSeno(boolean seno){
this.seno=seno;
this.repaint();
}
public void setCoseno(boolean coseno){
this.coseno=coseno;
this.repaint();
}
tienes que notar, que en las funciones setters estamos actualizando la grafica mediante repaint()
dentro de la funcion paintComponent, vamos a llamar las dos funciones que hemos creado para realizar la grafica, siempre y cuando si el atributo coseno, se encuentra en verdadero vamos a poder graficar la funcion del coseno y asi sucesivamente
Código java:
Ver originalprotected void paintComponent
(Graphics g
) { super.paintComponent(g);
if(seno)
drawSeno(g2);
if(coseno)
drawCoseno(g2);
}
y desde el menu "graficar seno" llamamos a la funcion setSeno
Código java:
Ver original @Override
graphics.setSeno(true);
graphics.setCoseno(false);
}
});
tus nuevas clases arregladas serian
Código java:
Ver originalpublic class GraphingData
extends JPanel { int x0, xN, y0, yN;
double xmin, xmax, ymin, ymax;
int h, w;
private boolean seno;
private boolean coseno;
public void setSeno(boolean seno){
this.seno=seno;
this.repaint();
}
public void setCoseno(boolean coseno){
this.coseno=coseno;
this.repaint();
}
protected void paintComponent
(Graphics g
) { super.paintComponent(g);
if(seno)
drawSeno(g2);
if(coseno)
drawCoseno(g2);
}
g2d.drawRect(10, 10, 120, 120);
g2d.drawString("Seno", 50, 50);
}
g2d.drawOval(10, 10, 120, 120);
g2d.drawString("Coseno", 50, 50);
}
}// fin de la clase
y
Código java:
Ver originalpublic class Tarea
extends JFrame {
private GraphingData graphics=null;
public Tarea() {
graphics = new GraphingData();
initComponents();
this.add(graphics,"Center");
}
private void initComponents() {
Unidad1
= new javax.
swing.
JMenu();
Unidad1.setText("Unidad1");
public void actionPerformed
(java.
awt.
event.
ActionEvent evt
) { }
});
Suma.setText("Suma Producto");
Unidad1.add(Suma);
Coseno.setText("Graficar Coseno");
GraficarSeno.setText("Graficar Seno");
Unidad1.add(GraficarSeno);
@Override
graphics.setSeno(false);
graphics.setCoseno(true);
}
});
@Override
graphics.setSeno(true);
graphics.setCoseno(false);
}
});
Unidad1.add(Coseno);
Funcion.setText("Funcion");
Funcion.
addKeyListener(new java.
awt.
event.
KeyAdapter() { public void keyPressed
(java.
awt.
event.
KeyEvent evt
) {
}
});
Unidad1.add(Funcion);
jMenuBar1.add(Unidad1);
setJMenuBar(jMenuBar1);
}
public static void main
(String args
[]) { Tarea tarea=new Tarea();
tarea.setSize(500,500);
tarea.setVisible(true);
}
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.
swing.
JMenu Unidad1
; // End of variables declaration//GEN-END:variables
}
agradecer no cuesta nada
saludos