Lo mas facíl que puedes hacer es borrar el enumerado de tu clase Pelicula y
AltaPelicula, luego creas en un archivo aparte el enumerado, tal cual lo definiste anteriormente
public enum TipoPelicula{
DVD, BluRay
}
creas una variable de este tipo en la clase Pelicula y en AltaPelicula si los necesitas.
Y para usar un valor de ellos, sólo tendrías que hacer algo como:
TipoPelicula.DVD
dado que tienes los mismos valores en "Tipo" y "TipoPelicula", creo que es tu mejor opción, además aunque tengan las mismas constantes "Tipo" y "TipoPelicula" son enumerados diferentes de ahí el error que te muestra.
Hola a todos tengo una clase Articulo y otra clase que hereda de Articulo llamada Película. La clase Película tiene Enumerados.
Cuando quiero crear un objeto de Película no se como hacerlo.
Cuando pongo :
Pelicula objPelicula = new Pelicula(tipo,Integer.parseInt(this.txtDuracion.getText()),id,this.txtTitulo.getText(),
mas18,alquilado)
Me da error y pone "incompatible types: TipoPelicula cannot be converted to Tipo"
Os mando las clases para que veáis como lo tengo echo.
Haber si alguien me puede ayudar.
Muchas Gracias.
public class Articulo {
private int identificador;
private String nombre;
private boolean mas18;
private boolean alquilado;
public int getIdentificador() {
return identificador;
}
public void setIdentificador(int identificador) {
this.identificador = identificador;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public boolean isMas18() {
return mas18;
}
public void setMas18(boolean mas18) {
this.mas18 = mas18;
}
public boolean isAlquilado() {
return alquilado;
}
public void setAlquilado(boolean alquilado) {
this.alquilado = alquilado;
}
public Articulo(int identificador, String nombre, boolean mas18, boolean alquilado) {
this.identificador = identificador;
this.nombre = nombre;
this.mas18 = mas18;
this.alquilado = alquilado;
}
}
public class Pelicula extends Articulo{
private enum Tipo{
DVD, BluRay
}
private Tipo tipo;
private int duracion;
public Tipo getTipo() {
return tipo;
}
public void setTipo(Tipo tipo) {
this.tipo = tipo;
}
public int getDuracion() {
return duracion;
}
public void setDuracion(int duracion) {
this.duracion = duracion;
}
public Pelicula(Tipo tipo, int duracion, int identificador, String nombre, boolean mas18, boolean alquilado) {
super(identificador, nombre, mas18, alquilado);
this.tipo = tipo;
this.duracion = duracion;
}
}
public class AltaPeliculas extends javax.swing.JDialog {
int id;
/**
* Creates new form ALtaPeliculs
*/
public AltaPeliculas(java.awt.Frame parent, boolean modal) throws Exception {
super(parent, modal);
initComponents();
this.setLocationRelativeTo(null);
this.setTitle("ALTA DE PELICULAS");
idMax();
}
private void idMax() throws Exception {
this.id = ArticulosDAO.numeroId() + 1;
this.txtId.setText(String.valueOf(id));
}
public enum TipoPelicula{
DVD, BluRay
}
private void btnOkActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
TipoPelicula tipo = null;
boolean mas18 = false;
boolean alquilado = false;
if (this.txtTitulo.getText().length() != 0 && this.txtDuracion.getText().length() != 0) {
if (this.rbtAlquiladoSi.isSelected()) {
alquilado = true;
}
if (this.rbtMayoresSi.isSelected()) {
mas18 = true;
}
if (this.rbtFormatoDVD.isSelected()) {
tipo = TipoPelicula.DVD;
}else{
tipo = TipoPelicula.BluRay;
}
try {
Articulo objArticulo = new Articulo(id, this.txtTitulo.getText(), mas18, alquilado);
Pelicula objPelicula = new Pelicula(tipo,Integer.parseInt(this.txtDuracion.getText()),id,this.txtTitulo.getText(),mas18,alquilado);
ArticulosDAO.insertar(objArticulo);
} catch (Exception ex) {
Logger.getLogger(AltaPeliculas.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
this.setVisible(false);
}