-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCine.java
More file actions
120 lines (91 loc) · 3.77 KB
/
Cine.java
File metadata and controls
120 lines (91 loc) · 3.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import java.awt.*;
import javax.swing.*;
public class Cine extends JFrame {
// Componentes
private JPanel cPrincipal, cCelda, cImagen, cTextos;
private JLabel lblImagen, lblTitulo, lblGenero;
private JScrollPane scroll;
// Lista de peliculas
private Pelicula[] peliculas;
// Tamaños:
private int ventana_sizeX = 480, ventana_sizeY = 640;
private int celda_sizeX = 460, celda_sizeY = 260;
private int imagen_sizeX = 180, imagen_sizeY = celda_sizeY;
public Cine() {
initVentana();
initComponentes();
}
private void initVentana() {
this.setTitle("Cartelera de Cine");
this.setSize(ventana_sizeX, ventana_sizeY);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
private void initComponentes() {
initPanel();
crearPeliculas();
initCeldas(); // Por cada pelicula, se genera una celda.
}
private void initPanel() {
// Contenedor principal.
cPrincipal = new JPanel();
cPrincipal.setLayout(new BoxLayout(cPrincipal, BoxLayout.Y_AXIS));
cPrincipal.setBackground(Color.WHITE);
this.add(cPrincipal);
scroll = new JScrollPane(cPrincipal);
cPrincipal.setAutoscrolls(true);
this.add(scroll);
}
private void crearPeliculas() {
peliculas = new Pelicula[3];
peliculas[0] = new Pelicula("Spiderman", "Accion", "resources/spiderman.jpg");
peliculas[1] = new Pelicula("Harry Potter", "Aventuras", "resources/harrypotter.jpg");
peliculas[2] = new Pelicula("Naruto: The last", "Anime", "resources/naruto.jpg");
}
private void initPanelesPeliculas() {
// Celdas por cada pelicula
cCelda = new JPanel();
cCelda.setMinimumSize(new Dimension(celda_sizeX, celda_sizeY));
cCelda.setLayout(new BorderLayout());
cCelda.setBackground(Color.WHITE);
cPrincipal.add(cCelda);
// Portada de celda
cImagen = new JPanel();
cImagen.setBackground(Color.WHITE);
cImagen.setSize(imagen_sizeX, imagen_sizeY); // para la imagen.
cCelda.add(cImagen, BorderLayout.WEST);
// Datos ce celda
cTextos = new JPanel();
cTextos.setBackground(Color.WHITE);
cTextos.setPreferredSize(new Dimension(celda_sizeX - imagen_sizeX - 20, imagen_sizeY)); // La altura debe
// coincidir con la
// altura de la imagen
cTextos.setLayout(new BoxLayout(cTextos, BoxLayout.Y_AXIS));
cCelda.add(cTextos, BorderLayout.EAST);
}
private void initContenidoPeliculas(int num) {
// Portada pelicula
ImageIcon imagenOriginal = new ImageIcon(peliculas[num].getImagen()); // string de la ruta a la pelicula
Icon imagenAdaptada = new ImageIcon(imagenOriginal.getImage().getScaledInstance(cImagen.getWidth(),
cImagen.getHeight(), Image.SCALE_DEFAULT));
// Debe ser igual al tamaño del panel
lblImagen = new JLabel();
lblImagen.setIcon(imagenAdaptada);
cImagen.add(lblImagen);
// ETIQUETA DEL TITULO
lblTitulo = new JLabel(peliculas[num].getTitulo(), SwingConstants.CENTER);
cTextos.add(lblTitulo);
// ETIQUETA DEL GENERO
lblGenero = new JLabel(peliculas[num].getGenero(), SwingConstants.CENTER);
cTextos.add(lblGenero);
}
private void initCeldas() {
for (int i = 0; i < peliculas.length; i++) {
initPanelesPeliculas();
initContenidoPeliculas(i);
}
}
public static void main(String[] args) {
Cine c = new Cine();
c.setVisible(true);
}
}