qtal amigos....necesito que me ayuden en este programita que voy haciendo...trata de que cualquier edad que haya seleccionado, el DNI que pusiera y la profesion que elija, imprima EDAD + DNI + PROFESION. todo eso en un JtextArea...aqui les dejo mi avance
package prueba;
import java.awt.Color;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
public class datosPersonales extends JFrame implements ItemListener {
String[] items = {"Ingeniero", "Arquitecto", "Enfermera", "Médico"};
JPanel panel = new JPanel();
JPanel panel2 = new JPanel();
JLabel label1 =new JLabel("Seleccione su edad");
JRadioButton rb1= new JRadioButton("18-20");
JRadioButton rb2= new JRadioButton("21-40");
JRadioButton rb3= new JRadioButton("41-60");
JRadioButton rb4= new JRadioButton("60 a más");
JLabel label2 =new JLabel("DNI");
JTextField txt =new JTextField(10);
JLabel label3 =new JLabel("Profesión");
JComboBox combo = new JComboBox(items);
JButton boton = new JButton ("Imprimir Datos");
ButtonGroup rbg;
JTextArea txtS = new JTextArea();
public void mipanel(){
getContentPane().setLayout(null);
rbg = new ButtonGroup();
rbg.add(rb1);
rbg.add(rb2);
rbg.add(rb3);
rbg.add(rb4);
rb1.setBounds(10, 60, 100, 25);
rb1.addItemListener(this);
rb2.setBounds(10, 90, 100, 25);
rb2.addItemListener(this);
rb3.setBounds(10, 120, 100, 25);
rb3.addItemListener(this);
rb4.setBounds(10, 150, 100, 25);
rb4.addItemListener(this);
label1.setBounds(0, 0, 150, 50);
panel.setLayout(null);
panel.setBounds(0, 0, -1, 1);
panel.setBackground(new Color(220,220,10));
panel.add(rb1);
panel.add(rb2);
panel.add(rb3);
panel.add(rb4);
panel.add(label1);
panel.setSize(150, 400);
setVisible(true);
setSize(400, 300);
add(panel);
panel2.setLayout(null);
panel2.setBackground(new Color(250,150,110));
panel2.setBounds(125, 0, 250, 150);
panel2.add(txtS);
panel2.add(label2);
panel2.add(label3);
panel2.add(txt);
panel2.add(combo);
panel2.add(boton);
panel2.setSize(220, 300);
setSize(350, 300);
add(panel2);
panel2.setBorder(BorderFactory.createTitledBorder("Resultados"));
label2.setBounds(40, -60, 150, 195);
txt.setBounds(70, 25, 99, 20);
label3.setBounds(40, -210, 555, 550);
combo.setBounds(99, 55, 100, 20);
boton.setBounds(50, 100, 150, 20);
}
public static void main(String[] args) {
datosPersonales obj = new datosPersonales();
obj.mipanel();
}
@Override
public void itemStateChanged(ItemEvent evento) {
}
}
Muy sencillo haz algo como:
jtextarea1.setText("Nombre: " + variablenombre + "\n" + "DNI: " + variable DNI); //puedes poner mas variables
Con eso pondras en cada linea un dato diferente con los rpecendentes de tipo cadena antepuestos a las variables que recojan los valores correspondientes.
Saludos
gracias amigo...pero ahora un pequenio detalle.....xq dni muestra NULL y ademas cuando elijo la opcion arquitecto sale medico y asi...aqui te dejo mi codigo
package prueba;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
public class datosPersonales extends JFrame implements ItemListener, ActionListener {
int a=0;
String edad;
String dni;
String profesion;
String[] items = {"Ingeniero", "Arquitecto", "Enfermera", "Médico"};
JPanel panel = new JPanel();
JPanel panel2 = new JPanel();
JLabel label1 =new JLabel("Seleccione su edad");
JRadioButton rb1= new JRadioButton("18-20");
JRadioButton rb2= new JRadioButton("21-40");
JRadioButton rb3= new JRadioButton("41-60");
JRadioButton rb4= new JRadioButton("60 a más");
JLabel label2 =new JLabel("DNI");
JTextField txt =new JTextField(10);
JLabel label3 =new JLabel("Profesión");
JComboBox combo = new JComboBox(items);
JButton boton = new JButton ("Imprimir Datos");
ButtonGroup rbg;
JTextArea txtS = new JTextArea();
private JLabel texto;
public void mipanel(){
getContentPane().setLayout(null);
rbg = new ButtonGroup();
rbg.add(rb1);
rbg.add(rb2);
rbg.add(rb3);
rbg.add(rb4);
rb1.setBounds(10, 60, 100, 25);
rb1.addItemListener(this);
rb2.setBounds(10, 90, 100, 25);
rb3.setBounds(10, 120, 100, 25);
rb3.addItemListener(this);
rb4.setBounds(10, 150, 100, 25);
rb4.addItemListener(this);
label1.setBounds(0, 0, 150, 50);
txtS.setBounds(50, 150, 150, 100);
panel.setLayout(null);
panel.setBounds(0, 0, -1, 1);
panel.setBackground(new Color(220,220,10));
panel.add(rb1);
panel.add(rb2);
panel.add(rb3);
panel.add(rb4);
panel.add(label1);
panel.setSize(150, 400);
setVisible(true);
setSize(400, 300);
add(panel);
panel2.setLayout(null);
panel2.setBackground(new Color(250,150,110));
panel2.setBounds(125, 0, 250, 150);
panel2.add(txtS);
panel2.add(label2);
panel2.add(label3);
panel2.add(txt);
panel2.add(combo);
panel2.add(boton);
panel2.setSize(220, 300);
panel2.add(txtS);
setSize(350, 300);
add(panel2);
//panel2.setBorder(BorderFactory.createTitledBorder("Resultados"));
label2.setBounds(40, -60, 150, 195);
txt.setBounds(70, 25, 99, 20);
label3.setBounds(40, -210, 555, 550);
combo.setBounds(99, 55, 100, 20);
boton.setBounds(50, 100, 150, 20);
boton.addActionListener(this);
}
public static void main(String[] args) {
datosPersonales obj = new datosPersonales();
obj.mipanel();
}
@Override
public void itemStateChanged(ItemEvent evento) {
//JTextArea(texto.getText() + combo.getSelectedItem());
int opcion = combo.getSelectedIndex();
if (opcion ==0){
profesion= ("Ingeniero");}
if (opcion ==1){
profesion= ("Arquitecto");}
if (opcion ==2){
profesion= ("Enfermera");}
if (opcion ==3){
profesion= ("Médico");}
if (rb1.isSelected()){
edad = ("18 a 20");}
if (rb2.isSelected()){
edad = ("21 a 40");}
if (rb3.isSelected()){
edad = ("41 a 60");}
if (rb4.isSelected()){
edad = ("60 a más");}
//texto.setText("" + sueldoTotal);
dni=texto.getText();
}
@Override
public void actionPerformed(ActionEvent event) {
if( event.getSource().equals(boton) ){
//txtS.setText(texto.getText() + (String)combo.getSelectedItem() );
txtS.setText("\n" + "Edad: " + edad + "\n" + "DNI: " + dni +"\n" + "Profesion: " + profesion);
}
}
}
Cita de: leliCabello en 4 Noviembre 2009, 20:10 PM
gracias amigo...pero ahora un pequenio detalle.....xq dni muestra NULL y ademas cuando elijo la opcion arquitecto sale medico y asi...aqui te dejo mi codigo
Esto ocurre porque no asignas valor alguno a la variable dni, por tanto tiene valor null o 0, en cuanto a lo la profesion, esto se debe a que no haces la lectura correcta que asigna el controlador de flujo switch.
Asegurate de que las equivalencias entre valores es la correcta y dime algo.
Es un simple problema de logica de flujo.
Saludos
-te felisito as dado el primer paso y mas inportante de todos para ser un programador de verdad (no usar netbeans) no vas a ser uno mas del monton que no sabe nisiquiera que es lo que ase su propio codigo
-te cuento que tu programa comete un error de rendimiento no se del resto pero a mi me buelve loco tu formulario cuando lo "sierras" deve serrarse tu formulrio lo unico que ase es volverse invisible lo corriges con esto
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
-simpre ponle nombre referenciales a las varibles ejemplo txtNombre,txtSueldo,no a no txt no text
-as cometido un error victima del no usar nomenclaturas as creado una caja de texto que nunca la as usado ("text") y ensima la leiste despues es por eso que te vota un nullpointerexeception
-simpre que tienes barios radiobutons agrupados por un buton grup seleciona uno por defecto
-acostumbrate a usar el constructor de las clases
-create un metodo initialiseconponents dentro del constructor de tu clase grafica para indicar que ese metodo es el encargado agregar los conponentes graficos a tu ventana
aca esta tu problema resuelto
package javaapplication1;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
/**
*
* @author luis
*/
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.*;
public class FrmEjemplo extends JFrame implements ActionListener {
int a = 0;
String edad;
String dni;
String profesion;
String[] items = {"Ingeniero", "Arquitecto", "Enfermera", "Médico"};
JPanel panel = new JPanel();
JPanel panel2 = new JPanel();
JLabel label1 = new JLabel("Seleccione su edad");
JRadioButton rb1 = new JRadioButton("18-20");
JRadioButton rb2 = new JRadioButton("21-40");
JRadioButton rb3 = new JRadioButton("41-60");
JRadioButton rb4 = new JRadioButton("60 a más");
JLabel label2 = new JLabel("DNI");
JTextField txtNombre = new JTextField(10);
JLabel label3 = new JLabel("Profesión");
JComboBox combo = new JComboBox(items);
JButton boton = new JButton("Imprimir Datos");
ButtonGroup rbg;
JTextArea txtS = new JTextArea();
private JLabel texto;
public void FrmEjemplo() {
getContentPane().setLayout(null);
rbg = new ButtonGroup();
rbg.add(rb1);
rbg.add(rb2);
rbg.add(rb3);
rbg.add(rb4);
rb1.setBounds(10, 60, 100, 25);
rb2.setBounds(10, 90, 100, 25);
rb3.setBounds(10, 120, 100, 25);
rb4.setBounds(10, 150, 100, 25);
label1.setBounds(0, 0, 150, 50);
txtS.setBounds(50, 150, 150, 100);
panel.setLayout(null);
panel.setBounds(0, 0, -1, 1);
panel.setBackground(new Color(220, 220, 10));
panel.add(rb1);
panel.add(rb2);
panel.add(rb3);
panel.add(rb4);
panel.add(label1);
panel.setSize(150, 400);
setVisible(true);
setSize(400, 300);
add(panel);
panel2.setLayout(null);
panel2.setBackground(new Color(250, 150, 110));
panel2.setBounds(125, 0, 250, 150);
panel2.add(txtS);
panel2.add(label2);
panel2.add(label3);
panel2.add(txtNombre);
panel2.add(combo);
panel2.add(boton);
panel2.setSize(220, 300);
panel2.add(txtS);
setSize(350, 300);
add(panel2);
//panel2.setBorder(BorderFactory.createTitledBorder("Resultados"));
label2.setBounds(40, -60, 150, 195);
txtNombre.setBounds(70, 25, 99, 20);
label3.setBounds(40, -210, 555, 550);
combo.setBounds(99, 55, 100, 20);
boton.setBounds(50, 100, 150, 20);
boton.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent event) {
int opcion = combo.getSelectedIndex();
if (opcion == 0) {
profesion = ("Ingeniero");
}
if (opcion == 1) {
profesion = ("Arquitecto");
}
if (opcion == 2) {
profesion = ("Enfermera");
}
if (opcion == 3) {
profesion = ("Médico");
}
if (rb1.isSelected()) {
edad = ("18 a 20");
}
if (rb2.isSelected()) {
edad = ("21 a 40");
}
if (rb3.isSelected()) {
edad = ("41 a 60");
}
if (rb4.isSelected()) {
edad = ("60 a más");
}
//texto.setText("" + sueldoTotal);
dni = txtNombre.getText();
if (event.getSource().equals(boton)) {
txtS.setText("\n" + "Edad: " + edad + "\n" + "DNI: " + dni + "\n" + "Profesion: " + profesion);
}
}
public static void main(String[] args) {
FrmEjemplo obj = new FrmEjemplo();
obj.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
obj.setVisible(true);
//obj.mipanel();
}
}
;-) ehhh...gracias ustedes si que saben lo que hacen he!