Foro de elhacker.net

Programación => Java => Mensaje iniciado por: Meta en 18 Agosto 2017, 01:48 am



Título: Encontrar error en el código
Publicado por: Meta en 18 Agosto 2017, 01:48 am
Hola:

Uso Eclipse oxigeny. En el JFrame puse en el formulario un JButton y un JTextArea. Mi idea es que si pulsas el botón "Mostrar", siga en el JTextArea el mensaje: Hola mundo.

(http://www.subeimagenes.com/img/bbbbbbbbbbbbbbb11-1767300.png)

Pulso dos veces el botón Mostrar y me lleva alcódigo.
Código:
// Variable tipo String.
String variable = "Hola mundo.";

// Mostramos el contenido de la variable en el JTextArea.
textArea.append(variable);

La palabra textArea que es el nombre del JTextArea marca error. No lo detecta. El error indicado es este:
Description   Resource   Path   Location   Type
textArea cannot be resolved   Prueba01.java   /Proyectazo/src/ejercicios   line 53   Java Problem



Código completo:
Código:
package ejercicios;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JTextArea;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class Prueba01 extends JFrame {

private JPanel contentPane;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Prueba01 frame = new Prueba01();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Prueba01() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

JButton btnMostrar = new JButton("Mostrar");
btnMostrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Variable tipo String.
String variable = "Hola mundo.";

// Mostramos el contenido de la variable en el JTextArea.
textArea.append(variable);
}
});
btnMostrar.setBounds(165, 11, 89, 23);
contentPane.add(btnMostrar);

JTextArea textArea = new JTextArea();
textArea.setBounds(10, 55, 414, 195);
contentPane.add(textArea);
}

}

¿Alguna idea?

Saludos.


Título: Re: Encontrar error en el código
Publicado por: ivancea96 en 18 Agosto 2017, 02:20 am
Fíjate en el código. El JTextArea se crea luego, no existe en ese momento.

Si quieres hacer eso, tendrás que mover las variables.


Título: Re: Encontrar error en el código
Publicado por: Meta en 18 Agosto 2017, 15:42 pm
Código completo.

Código:
package ejercicios;

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import javax.swing.JTextArea;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class Prueba01 extends JFrame {

private JPanel contentPane;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Prueba01 frame = new Prueba01();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Prueba01() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JTextArea textArea = new JTextArea();


JButton btnMostrar = new JButton("Mostrar");
btnMostrar.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
}
});
btnMostrar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {

// Variable tipo String.
String variable = "Hola mundo.";

// Mostramos el contenido de la variable en el JTextArea.
textArea.append(variable + "\n");
}
});
btnMostrar.setBounds(165, 11, 89, 23);
contentPane.add(btnMostrar);


textArea.setBounds(10, 55, 414, 195);
contentPane.add(textArea);
}

}

¿Por qué se generó abajo en vez de donde corresponde?

Con NetBeans no pasa.

Gracias por la ayuda.


Título: Re: Encontrar error en el código
Publicado por: ivancea96 en 18 Agosto 2017, 15:52 pm
¿Qué es "donde corresponde"?

Ten en cuenta que WindowBuilder es un plugin de Eclipse, NetBeans es otro IDE diferente.

En cualquier caso, todos esos parámetros se los puedes modificar en preferencias.
Aquí tienes la ayuda de Eclipse: http://help.eclipse.org/kepler/topic/org.eclipse.wb.swing.doc.user/html/preferences/swing/preferences_code_generation.html?cp=64_8_2_0 (http://help.eclipse.org/kepler/topic/org.eclipse.wb.swing.doc.user/html/preferences/swing/preferences_code_generation.html?cp=64_8_2_0)