2012-03-09 11 views
8

Tengo un problema con la creación de guiones de Java de IntelliJ. La mayoría del código detrás del panel está desafortunadamente escondido dentro del creador de GUI y no puedo editarlo.Creador de gui IntelliJ: JPanel otorga excepción de puntero nulo en tiempo de ejecución al agregar cualquier componente

Creé un "questionPanel" JPanel en blanco con el ItelliJ GridLayoutManager. Cuando trato de agregar algo a ese panel, obtengo una excepción de puntero nulo a pesar de que el panel definitivamente no es nulo. También traté de agregar un JTextField al diseño (por curiosidad) y eso tampoco ayudó. Aparece JTextField, pero todavía no puedo agregar nada desde dentro del código.

Cuando cambio el gestor de diseño a cualquier otra cosa (GridBagLayout, FormLayout, BorderLayout, etc.), ya no recibo errores, pero no aparece nada.

DisplayView.java

private JPanel questionPane; 

public void initialize() 
{ 
    questionPane.addMouseListener(new MouseListener() { 

     @Override 
     public void mouseReleased(MouseEvent e) { 
      questionPane.add(new JLabel("Test")); 
      System.out.println("Click event received."); 
     } 
     //other overrides hidden 
} 

¿Alguien tiene una idea de lo que está pasando detrás de las escenas o una manera para mí para obtener componentes en el panel? Gracias.

Muestra de Seguimiento de la pila (esta traza no se hace por el mismo código que el anterior, pero es el mismo error):

Exception occurred during event dispatching: 
java.lang.NullPointerException 

at com.intellij.uiDesigner.core.GridLayoutManager.addLayoutComponent(
GridLayoutManager.java:134) 

at java.awt.Container.addImpl(Container.java:1074) 
at java.awt.Container.add(Container.java:365) 
at [MyProject].UI.View.DisplayView$1.actionPerformed(DisplayView.java:91) 
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) 
..... 
+0

Para una mejor ayuda antes, publique un [SSCCE] (http://sscce.org/). –

+0

tal vez usted marcó la creación personalizada? –

Respuesta

11

Para cualquier persona que está usando el creador interfaz gráfica de usuario de IntelliJ y recibiendo el mismo error, me Solucionado el problema al configurar manualmente el administrador de diseño del panel en el código en lugar de elegir diferentes administradores de diseño dentro del creador de la GUI.

Ejemplo:

questionPane.setLayout(new BoxLayout(questionPane, BoxLayout.PAGE_AXIS)); 
0

El creador GUI IntelliJ IDEA también le permite insertar imágenes como etiquetas. Para eso crea una etiqueta en cualquier lugar que desees, y en sus cofiguraciones encontrarás un icono de ranura donde elegirás la ruta a tu imagen. ¡¡Y eso es!!

1

Recibí el mismo error que usted. Tengo un JPanel con Layout Manager configurado en GridLayoutManager Intellij. Cuando traté de agregar cualquier componente a este panel, recibía la excepción.

Luego fui al editor de GUI y cambié a BorderLayout y todo funcionó bien. No estoy seguro de por qué no está funcionando para usted.

1

que haya presentado el problema como un error en la JetBrains website y recibió la siguiente respuesta:

Para NPE solución, por favor añadir un componente secundario a un JPanel con GridLayoutManager con GridConstraints como este:

panel.add(new JLabel(), new GridConstraints(...)) 

o utilizar otro diseño.

El uso de GridConstraints me solucionó el problema al igual que el uso de otro LayoutManager.

que acorta & editado la respuesta para facilitar la lectura

Cuestiones relacionadas