Java - Problema con lang.NullPointerException

 
Vista:
Imágen de perfil de Skyli
Val: 16
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Problema con lang.NullPointerException

Publicado por Skyli (7 intervenciones) el 24/03/2019 06:02:36
Hola amigos programadores :P

Bueno, el día de hoy vengo con una consulta, actualmente estoy estudiando la materia llamada tópicos avanzados de programación y necesito que me ayuden a resolver un problema que se me presento al intentar terminar un programa que me dio el maestro sobre interfaces graficas, estoy teniendo problemas en las lineas 46, 63 y 257, la excepcion que me indica la consola es: Exception in thread "main" java.lang.NullPointerException , ya revise con todo lo que se, pero no logro que haga nada, así que venia a ver si alguien me podría ayudar :C no digo que me ayuden a hacerlo en su totalidad, si no que me digan que podría estar mal para resolverlo por mi cuenta, sin mas que añadir, agrego el código y espero sus respuestas, gracias

1 package Programa_02;
2
3 import java.awt.event.ActionEvent;
4 import java.awt.event.ActionListener;
5 import javax.swing.ButtonGroup;
6 import javax.swing.JCheckBoxMenuItem;
7 import javax.swing.JFrame;
8 import javax.swing.JLabel;
9 import javax.swing.JMenu;
10 import javax.swing.JMenuBar;
11 import javax.swing.JMenuItem;
12 import javax.swing.JOptionPane;
13 import javax.swing.JPanel;
14 import javax.swing.JPopupMenu;
15 import javax.swing.JRadioButtonMenuItem;
16
17 public class Programa_02 extends JFrame implements ActionListener {
18 private JPanel miPanel;
19 private JMenuBar barraMenu;
20 private JMenu menuArchivo, menuEdicion, menuAcercaDe, subMenuGirar, menuOpciones;
21 private JMenuItem menuItemNuevo, menuItemAbrir, menuItemGuardar, itemSalir;
22 private JMenuItem menuItemCopiar, menuItemPegar, menuItemGirar1, menuItemGirar2;
23 private JMenuItem menuItemAplication, menuItemBlog;
24 private JRadioButtonMenuItem JRadioButtonMenu1, JRadioButtonMenu2, JRadioButtonMenuBox;
25 private JCheckBoxMenuItem JCheckMenu1,JCheckMenu2;
26 private JLabel labelArchivo, labelEdicion, labelOpciones, titulo;
27 private JLabel labelArchivoSeleccionado, labelEdicionSeleccionado, labelOpcionesCheckSeleccionadas, labelOpcionesRadioSeleccionadas;
28 private JPopupMenu menuEmergente;
29 private JMenuItem itemEmergente1, itemEmergente2;
30 String cadenaArchivo="";
31 String cadenaEdicion="";
32 String cadenaOpcionesCheck="";
33 String cadenaOpcionesRadio="";
34 String cadenaCheck1="";
35 String cadenaCheck2="";
36 String cadenaRadio1="";
37 String cadenaRadio2="";
38 String informacionAplicar="";
39 String informacion="";
40
41 public Programa_02 () {
42 setTitle("Topicos: titulo de la ventana");
43 this.setSize(400,200);
44 setLocationRelativeTo(null);
45 this.setResizable(false);
46 this.iniciarComponentes(); //error
47 }
48
49 private void iniciarComponentes(){
50 informacion="Esta es una aplicacion simple que muestra\n";
51 informacion+="De forma sencilla el funcionamiento basico de los\n";
52 informacion+="Componentes de un menu.\n \n";
53 informacion+="Autor: SIC\n\n\n";
54 informacion+="La programacion es simple enfocado al\n";
55 informacion+="Entorno de la ingenieria de software, presentando conceptos\n";
56 informacion+="Basicos y ejemplos sencillos de programacion\n\n";
57 informacion+="SIC\n\n\n";
58 miPanel=new JPanel ();
59 miPanel.setLayout(null);
60 barraMenu=new JMenuBar();
61 menuArchivo=new JMenu();
62 menuEdicion=new JMenu();
63 menuItemCopiar.setText("Copiar"); //error
64 menuEdicion.add(menuItemCopiar);
65 menuItemPegar.setText("Pegar");
66 menuEdicion.add(menuItemPegar);
67 menuItemGirar1.setText("Vertical");
68 subMenuGirar.add(menuItemGirar1);
69 menuItemGirar2.setText("Horizontal");
70 subMenuGirar.add(menuItemGirar2);
71 subMenuGirar.setText("Girar");
72 menuEdicion.add(subMenuGirar);
73 menuOpciones.addSeparator();
74 JCheckMenu1 = new JCheckBoxMenuItem("Check 1");
75 menuOpciones.add(JCheckMenu1);
76 JCheckMenu2=new JCheckBoxMenuItem("Check 2");
77 menuOpciones.add(JCheckMenu2);
78 menuOpciones.addSeparator();
79 ButtonGroup GrupoRadios = new ButtonGroup();
80 JRadioButtonMenu1 =new JRadioButtonMenuItem ("Radio 1");
81 GrupoRadios.add(JRadioButtonMenu1);
82 menuOpciones.add(JRadioButtonMenu1);
83 JRadioButtonMenu2 =new JRadioButtonMenuItem ("Radio 2");
84 GrupoRadios.add(JRadioButtonMenu2);
85 menuOpciones.add(JRadioButtonMenu2);
86 itemEmergente1.setText("Opcion Emergente 1");
87 menuEmergente.add(itemEmergente1);
88 itemEmergente2.setText("Opcion emergente 2");
89 menuEmergente.add(itemEmergente2);
90 menuItemAplication.setText("Aplicacion");
91 menuAcercaDe.add(menuItemAplication);
92 menuItemBlog.setText("Topicos... ");
93 menuAcercaDe.add(menuItemBlog);
94 menuArchivo.setText("Archivo");
95 barraMenu.add(menuArchivo);
96 menuEdicion.setText("Edicion");
97 barraMenu.add(menuEdicion);
98 menuOpciones.setText("Opciones");
99 barraMenu.add(menuOpciones);
100 menuItemNuevo.setText("Nuevo");
101 menuArchivo.add(menuItemNuevo);
102 menuArchivo.addSeparator();
103 menuItemAbrir.setText("Abrir");
104 menuArchivo.add(menuItemAbrir);
105 menuArchivo.addSeparator();
106 menuItemGuardar.setText("Guardar");
107 menuArchivo.add(menuItemGuardar);
108 menuArchivo.addSeparator();
109 itemSalir.setText("Salir");
110 menuArchivo.add(itemSalir);
111 itemEmergente2=new JMenuItem();
112 menuEmergente=new JPopupMenu();
113 titulo=new JLabel();
114 labelArchivo=new JLabel();
115 labelEdicion=new JLabel();
116 labelOpciones=new JLabel();
117 labelArchivoSeleccionado=new JLabel();
118 labelEdicionSeleccionado=new JLabel();
119 labelOpcionesCheckSeleccionadas=new JLabel();
120 labelOpcionesRadioSeleccionadas=new JLabel();
121 titulo.setBounds(10,0,80,30);
122 titulo.setText("MENU");
123 labelArchivo.setBounds(10,20,80,30);
124 menuOpciones=new JMenu();
125 menuAcercaDe=new JMenu();
126 subMenuGirar=new JMenu();
127 menuItemNuevo=new JMenuItem();
128 menuItemAbrir=new JMenuItem();
129 menuItemGuardar=new JMenuItem();
130 itemSalir=new JMenuItem();
131 menuItemCopiar=new JMenuItem();
132 menuItemPegar=new JMenuItem();
133 menuItemGirar1=new JMenuItem();
134 menuItemGirar2=new JMenuItem();
135 menuItemAplication=new JMenuItem();
136 menuItemBlog=new JMenuItem();
137 itemEmergente1=new JMenuItem();
138 labelArchivo.setText("Archivo: ");
139 labelEdicion.setBounds(10,40,80,30);
140 labelEdicion.setText("Edicion: ");
141 labelOpciones.setBounds(10,60,80,30);
142 labelOpciones.setText("Opciones: ");
143 labelArchivoSeleccionado.setBounds(70,20,200,30);
144 labelEdicionSeleccionado.setBounds(70,40,200,30);
145 labelOpcionesCheckSeleccionadas.setBounds(75,60,200,30);
146 labelOpcionesRadioSeleccionadas.setBounds(75,80,200,30);
147 menuAcercaDe.setText("Acerca de...");
148 barraMenu.add(menuAcercaDe);
149 setJMenuBar(barraMenu);
150 menuItemNuevo.addActionListener(this);
151 menuItemAbrir.addActionListener(this);
152 menuItemGuardar.addActionListener(this);
153 itemSalir.addActionListener(this);
154 menuItemCopiar.addActionListener(this);
155 menuItemPegar.addActionListener(this);
156 menuItemGirar1.addActionListener(this);
157 menuItemGirar2.addActionListener(this);
158 menuItemAplication.addActionListener(this);
159 menuItemBlog.addActionListener(this);
160 JCheckMenu1.addActionListener(this);
161 JCheckMenu2.addActionListener(this);
162 itemEmergente1.addActionListener(this);
163 itemEmergente2.addActionListener(this);
164 miPanel.add(titulo);
165 miPanel.add(labelArchivo);
166 miPanel.add(labelEdicion);
167 miPanel.add(labelOpciones);
168 miPanel.add(labelArchivoSeleccionado);
169 miPanel.add(labelEdicionSeleccionado);
170 miPanel.add(labelOpcionesCheckSeleccionadas);
171 miPanel.add(labelOpcionesRadioSeleccionadas);
172 miPanel.setComponentPopupMenu(menuEmergente);
173 add(miPanel);
174 }
175 @Override
176 public void actionPerformed (ActionEvent evento){
177 eventosMenuArchivo(evento);
178 labelArchivoSeleccionado.setText(cadenaArchivo);
179 eventosMenuEdicion(evento);
180 labelEdicionSeleccionado.setText(cadenaEdicion);
181 eventosOpciones(evento);
182 labelOpcionesCheckSeleccionadas.setText(cadenaOpcionesCheck);
183 labelOpcionesRadioSeleccionadas.setText(cadenaOpcionesRadio);
184 if (evento.getSource()==menuItemAplication) {
185 JOptionPane.showMessageDialog(null, informacionAplicar,"Informacion", JOptionPane.INFORMATION_MESSAGE);
186 }
187 if (evento.getSource()==menuItemBlog) {
188 JOptionPane.showMessageDialog(null, informacionAplicar,"¡Opcion!", JOptionPane.WARNING_MESSAGE);
189 }
190 if (evento.getSource()==itemEmergente1) {
191 JOptionPane.showMessageDialog(null, "Presiona la opcion emergente 1");
192 }
193 if (evento.getSource()==itemEmergente2) {
194 JOptionPane.showMessageDialog(null, "Presiona la opcion emergente 2");
195 }
196 }
197 private void eventosMenuArchivo (ActionEvent e){
198 if (e.getSource()==menuItemNuevo) {
199 cadenaArchivo=""+menuItemNuevo.getText();
200 }
201 if (e.getSource()==menuItemAbrir) {
202 cadenaArchivo=""+menuItemAbrir.getText();
203 }
204 if (e.getSource()==menuItemGuardar) {
205 cadenaArchivo=""+menuItemGuardar.getText();
206 }
207 if (e.getSource()==itemSalir) {
208 cadenaArchivo=""+itemSalir.getText();
209 }
210 }
211 private void eventosMenuEdicion (ActionEvent e){
212 if (e.getSource()==menuItemCopiar) {
213 cadenaEdicion=""+menuItemCopiar.getText();
214 }
215 if (e.getSource()==menuItemPegar) {
216 cadenaEdicion=""+menuItemPegar.getText();
217 }
218 if (e.getSource()==menuItemGirar1) {
219 cadenaEdicion="Girar"+menuItemGirar1.getText();
220 }
221 if (e.getSource()==menuItemGirar2) {
222 cadenaEdicion="Girar"+menuItemGirar2.getText();
223 }
224 }
225 private void eventosOpciones (ActionEvent e) {
226 if (e.getSource()==JCheckMenu1) {
227 if (JCheckMenu1.getState()) {
228 cadenaCheck1=JCheckMenu1.getText()+" es true";
229 }else{
230 cadenaCheck1=JCheckMenu1.getText()+" es false";
231 }
232 }
233 if (e.getSource()==JCheckMenu2) {
234 if (JCheckMenu2.getState()) {
235 cadenaCheck2=JCheckMenu2.getText()+" es true";
236 }else{
237 cadenaCheck2=JCheckMenu2.getText()+" es false";
238 }
239 }
240 if (e.getSource()==JRadioButtonMenu1 || e.getSource()==JRadioButtonMenu2) {
241 if (JRadioButtonMenu1.isSelected()) {
242 cadenaRadio1=JRadioButtonMenu1.getText()+" es true";
243 }else{
244 cadenaRadio1=JRadioButtonMenu1.getText()+" es false";
245 }
246 if (JRadioButtonMenu2.isSelected()) {
247 cadenaRadio2=JRadioButtonMenu2.getText()+" es true";
248 }else{
249 cadenaRadio2=JRadioButtonMenu2.getText()+" es false";
250 }
251 }
252 cadenaOpcionesCheck=cadenaCheck1+", "+cadenaCheck2;
253 cadenaOpcionesRadio=cadenaRadio1+", "+cadenaRadio2;
254 }
255
256 public static void main(String[] args) {
257 Programa_02 interfaz=new Programa_02(); //error
258 interfaz.setVisible(true);
259 }
260 }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Javier
Val: 115
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Problema con lang.NullPointerException

Publicado por Javier (54 intervenciones) el 24/03/2019 11:09:15
Buenas,
el problema que se te presenta se debe a que estás intentando utilizar las propiedades de un objeto que todavía no ha sido creado. Por ejemplo, el problema de la línea 63: menuItemCopiar.setText("Copiar"); //error te da por que estás intentando modificar el texto del objeto MenuItem menuItemCopiar. ¿Qué pasa? que ese objeto está declarado JMenuItem menuItemCopiar; pero no está creado.

Si te fijas en la línea 131 es dónde lo creas menuItemCopiar=new JMenuItem();

Entonces claro, antes de que el objeto esté creado intentas modificar sus atributos. El error que te salta es eso, te está indicando de que ese objeto es nulo, todavía no ha sido creado y por eso no puedes modificar ni acceder a sus atributos.

Por lo que veo, los demás objetos también los creas después y también te va a dar error.
Lo que debes de hacer es de ir creando los objetos en primer lugar y, una vez creados ya puedes utilizarlos.

Espero me entiendas.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar
Imágen de perfil de Skyli
Val: 16
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

Problema con lang.NullPointerException

Publicado por Skyli (7 intervenciones) el 24/03/2019 12:43:54
En serio? Rayos, sabía que algo estaba haciendo mal, muchas gracias :)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar