Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Problema con varibles

Tengo un problema con las variable, quiero gestionar las fotos (con la variable foto) para que con el botón avanzar y retroceder cambiar una foto (ya que son muchas fotos y están numeradas del 1 al 66) pero me aparecen estos errores:

Exception in thread "main" java.lang.NullPointerException
at javax.swing.ImageIcon.(Unknown Source)
at paqueteJava.VentanaInicial.(VentanaInicial.java:126)
at paqueteJava.VentanaInicial.main(VentanaInicial.java:176)


No se que hacer. Por cierto mi profesor de TIC enseña fatal


package paqueteJava;
import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
public class VentanaInicial {
JFrame ventanaInicio= new JFrame("Ce 78 App");
//Inicio
JLabel titulo= new JLabel();
JLabel autor= new JLabel();
JLabel articulo= new JLabel();
JButton botApuntes=new JButton();
JButton botExamen=new JButton();
JButton botInfo=new JButton();
JPanel Inicio= new JPanel();
JPanel marPrincipalTituloAutor= new JPanel();
JPanel marPrincipalBotones= new JPanel();
JPanel marBotones= new JPanel();
JPanel marBotones1= new JPanel();
JPanel marArticulo= new JPanel();
JPanel Espacio= new JPanel();
JPanel marTitulo= new JPanel();
JPanel marAutor= new JPanel();
JPanel marInfo= new JPanel();
Font fuente = new Font("Arial",1,13);
String texto;
//Apuntes
JButton Volver=new JButton();
JButton Avanzar=new JButton();
JLabel Foto= new JLabel();
JPanel Apuntes= new JPanel();
JPanel marControl= new JPanel();
JPanel marFoto= new JPanel();
double resultado=1;
double foto=0;
double uno=1;
public VentanaInicial() {
//Características
ventanaInicio.setPreferredSize(new Dimension(1200,900));
ventanaInicio.setExtendedState(ventanaInicio.MAXIMIZED_BOTH);
ventanaInicio.setMinimumSize(ventanaInicio.getPreferredSize());
ventanaInicio.setLocationRelativeTo(null);
ventanaInicio.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//ventanaInicio.setBounds(800,800,700,700);

titulo.setText("Ce 78 App");
titulo.setFont(new Font("Arial",3,60));
titulo.setForeground(Color.BLACK);
titulo.setHorizontalAlignment(JTextField.CENTER);
titulo.setHorizontalAlignment(Label.RIGHT);

autor.setText("Por Pedro Cristos Martinez");
autor.setFont(new Font("Arial",0,20));
autor.setForeground(Color.BLACK);
autor.setHorizontalAlignment(JTextField.CENTER);

texto="<html>


DON JUAN CARLOS I
</html>";
articulo.setText(texto);
articulo.setFont(fuente);


botExamen.setIcon(new ImageIcon(getClass().getResource("Aceptar.gif")));
botExamen.setText("Acceso a examen");
botExamen.setPreferredSize(new Dimension (200,40));
botExamen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){

Inicio.setVisible(false);
//ventanaInicio.add();




}
}
);
//Examen

botApuntes.setIcon(new ImageIcon(getClass().getResource("Derecha.gif")));
botApuntes.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
botApuntes.setText("Acceso a apuntes");
botApuntes.setPreferredSize(new Dimension (200,40));
botApuntes.addActionListener( new ActionListener(){
public void actionPerformed(ActionEvent e){

Inicio.setVisible(false);
ventanaInicio.add(Apuntes);
Foto.setIcon(new ImageIcon(getClass().getResource("25.png")));



}
}
);
//Apuntes
Volver.setIcon(new ImageIcon(getClass().getResource("Izquierda.gif")));
Volver.setText("Volver al menu");
Volver.setPreferredSize(new Dimension (200,40));
Volver.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
foto=resultado-uno;


}
}
);


Avanzar.setIcon(new ImageIcon(getClass().getResource("Derecha.gif")));
Avanzar.setText("Siguiente lección");
Avanzar.setPreferredSize(new Dimension (200,40));
Avanzar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){

foto=resultado+uno;

//if (foto>=)

}
}
);

Foto.setHorizontalAlignment(JTextField.CENTER);
Foto.setIcon(new ImageIcon(getClass().getResource(foto+".png")));

//botInfo.setIcon(new ImageIcon(getClass().getResource("")));
botInfo.setText("Info");
botInfo.setPreferredSize(new Dimension (80,40));
//botInfo.addActionListener( new ());


//Montaje INICIO:
marBotones.setLayout(new BorderLayout());
marBotones.add("Center",botApuntes);
marBotones.add("South",botExamen);
marBotones1.setLayout(new FlowLayout(FlowLayout.LEFT));
marBotones1.add(marBotones);
marTitulo.setLayout(new FlowLayout(FlowLayout.LEFT));
marTitulo.add(titulo,("Sup.1"));
marInfo.setLayout(new BorderLayout());
marInfo.add("South",botInfo);
marArticulo.add(articulo);
marAutor.setLayout(new FlowLayout(FlowLayout.LEFT));
marAutor.add(autor);
marPrincipalTituloAutor.setLayout(new BorderLayout());
marPrincipalTituloAutor.add("Center",marTitulo);
marPrincipalTituloAutor.add("South",marAutor);
marPrincipalBotones.add(marBotones1);
marPrincipalBotones.add(marArticulo);
marPrincipalBotones.add(marInfo);
Inicio.setLayout(new BorderLayout());
Inicio.setBorder(BorderFactory.createEmptyBorder(2,30,20,20));
Inicio.add("North",marPrincipalTituloAutor);
Inicio.add("Center",marArticulo);
Inicio.add("South",marPrincipalBotones);
ventanaInicio.add(Inicio);
ventanaInicio.setResizable(true);
ventanaInicio.setVisible(true);
//Montaje
marControl.setLayout(new FlowLayout(FlowLayout.CENTER));
marControl.add(Volver);
marControl.add(Espacio);
marControl.add(Avanzar);
marFoto.add(Foto);
Apuntes.setBorder(BorderFactory.createEmptyBorder(2,30,20,20));
Apuntes.setLayout(new BorderLayout());
Apuntes.add("North",marControl);
Apuntes.add("Center",marFoto);



}
public static void main(String[] args) {
new VentanaInicial();

}

}

junio 5, 2021 | Unregistered CommenterPedro Cristos

Guenas.

Este foro no se enrolla mucho a la hora de publicar código.
No siempre cortando y pegando en mi editor coinciden los números de línea.

Si te dice que peta en la rutina X línea N haz el favor de publicar toda la rutina X y marcar de alguna manera la línea.

Si deseas escribir en un futuro algún código aceptable debes aprender a seguir hacia atrás desde el punto del error. No hay que preguntar así al aire. Sigue hacia atrás hasta que veas algo. No lo has intentado dado que no públicas los puntos importantes.
Te ayudaré si te estancas pero no te corregiré el código mientras tu te tomas una birra en el bareto.

Un saludo,
Paposo

junio 9, 2021 | Unregistered CommenterPaposo