Acceso a componentes creados en el diseñador GUI en IntelliJ

Aunque he usado Swing antes, nunca he usado un diseñador GUI y tengo problemas para acceder a los componentes que he dejado caer en mi panel desde mi código fuente.

Creé un nuevo proyecto y decidí crear un formulario GUI. Luego creé el método principal usando la opción 'generar' y ahora tengo este código en mi archivo 'helloWorld.java'.

public class helloWorld {


private JPanel myForm;
private JLabel text;

public static void main(String[] args) {
    JFrame frame = new JFrame("helloWorld");
    frame.setContentPane(new helloWorld().myForm);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setPreferredSize(new Dimension(800, 600));
    frame.pack();
    frame.setVisible(true);
    }
}

Luego agregué un JLabel en el diseñador con el nombre del campo titleque agregó un atributo a la cabeza de mi clase helloWorld. Ahora quiero establecer el texto en el nombre del campo después de que se haya ejecutado el programa.

Si creo la instancia de JLabel con una nueva cadena como argumento y la agrego a mi JFrame, el programa se bloquea con una excepción de puntero nulo.

Si creo un JLabel sin argumentos y llamo a setText y luego repinte en el JFrame, no pasa nada.

Supongo que para resolver mi problema en una sola línea: ¿cómo se accede a los componentes que he creado con el diseñador de GUI?

Respuesta 1

Primero, IntelliJ es un poco especial ya que oculta una gran cantidad del código repetitivo para usted, por lo que su código fuente se ve realmente más simple de lo que realmente sucede debajo del capó.

Básicamente, cuando usa el generador de IntelliJ GUI, termina con un código fuente correspondiente a su formulario que se ve así:

public class DialogEditView {

    private JPanel mainPanel;
    private JLabel labelDescription;
    private JLabel labelExample;
    private JComboBox comboboxDEJC;

}

Para poder acceder a estos, simplemente puede agregar captadores a ese archivo fuente:

public class DialogEditView {

    private JPanel mainPanel;
    private JLabel labelDescription;
    private JLabel labelExample;
    private JComboBox comboboxDEJC;

    public JPanel getMainPanel() {
        return mainPanel;
    }

    // etc.

}

Una vez más, IntelliJ modifica el código fuente o modifica los archivos de clase automáticamente (puede ir a Configuración / GUI Builder para probar las dos opciones y ver qué hacen).

¿Cómo se accede a los componentes que he creado con el diseñador GUI?

Puede ir al archivo de código fuente correspondiente a su GUI y agregar captadores. Asegúrese de nombrar sus componentes ...

Respuesta: 2

Estoy estudiando Robolectric. El directorio de mi proyecto es, Los códigos de prueba de mi unidad MainActivityTest son los siguientes, package com.example.activity; importar android.app.Activity; import com.example.BuildConfig; ...

Soy bastante nuevo en la codificación y solo tengo un conocimiento limitado en vb. Estoy tratando de recuperar ese conocimiento en Java y estoy tratando de crear un programa simple de búsqueda de Java que busque una matriz basada en un ...

Tengo problemas para compilar Scala con Maven o Eclipse, donde trato de importar una clase de un archivo Java que contiene un espacio de nombres y una clase del mismo nombre. Puedo compilar con scalac, ...

Estoy creando una clase que se supone que puede usarse con una matriz de cualquier tipo de número (float, int, etc.), así que aquí hay un método que tengo: // T extiende Número público sincronizado T [] promedio () ...