Buenas noches, tengo un problema con los botones de java, en este programa no aparecen hasta que les paso el mouse arriba, me parece que esta bastante mal programado, casi seguro que el problema es el label fuera del constructor, pero como no estoy seguro dejo el codigo.
import javax.swing.*; import javax.swing.event.*; public class Visual23 extends JFrame implements ChangeListener { private JRadioButton radio1,radio2; private ButtonGroup bg; private JTextField textfield1,textfield2; private JLabel label1; public Visual23(){ bg=new ButtonGroup(); radio1=new JRadioButton("suma"); radio1.setBounds(10,70,100,30); radio1.addChangeListener(this); add(radio1); bg.add(radio1); radio2=new JRadioButton("resta"); radio2.setBounds(100,70,100,30); radio2.addChangeListener(this); add(radio2); bg.add(radio2); textfield1=new JTextField(); textfield1.setBounds(10,20,100,30); add(textfield1); textfield2=new JTextField(); textfield2.setBounds(100,20,100,30); add(textfield2); } public void stateChanged (ChangeEvent e){ if (radio1.isSelected()){ String cad1=textfield1.getText(); String cad2=textfield2.getText(); int x1=Integer.parseInt(cad1); int x2=Integer.parseInt(cad2); int suma=x1+x2; label1=new JLabel(String.valueOf(suma)); label1.setBounds(50,120,100,30); add(label1); } if (radio2.isSelected()){ String cad1=textfield1.getText(); String cad2=textfield2.getText(); int x1=Integer.parseInt(cad1); int x2=Integer.parseInt(cad2); int suma=x1+x2; label1=new JLabel(String.valueOf(suma)); label1.setBounds(50,120,100,30); add(label1); } } public static void main (String[]ar){ Visual23 A=new Visual23(); A.setBounds(0,0,350,230); A.setVisible(true); } }
Prueba llamando al metodo pack(); al final del constructor. Esto debría solucionar tu inconveniente. Si no funciona prueba. repaint(); pack(); al final del constructor igual. Nos comentas como te va con eso.
Buenas noches, tengo un problema con los botones de java, en este programa no aparecen hasta que les paso el mouse arriba, me parece que esta bastante mal programado, casi seguro que el problema es el label fuera del constructor, pero como no estoy seguro dejo el codigo.
import javax.swing.*;
import javax.swing.event.*;
public class Visual23 extends JFrame implements ChangeListener {
private JRadioButton radio1,radio2;
private ButtonGroup bg;
private JTextField textfield1,textfield2;
private JLabel label1;
public Visual23(){
bg=new ButtonGroup();
radio1=new JRadioButton("suma");
radio1.setBounds(10,70,100,30);
radio1.addChangeListener(this);
add(radio1);
bg.add(radio1);
radio2=new JRadioButton("resta");
radio2.setBounds(100,70,100,30);
radio2.addChangeListener(this);
add(radio2);
bg.add(radio2);
textfield1=new JTextField();
textfield1.setBounds(10,20,100,30);
add(textfield1);
textfield2=new JTextField();
textfield2.setBounds(100,20,100,30);
add(textfield2);
}
public void stateChanged (ChangeEvent e){
if (radio1.isSelected()){
String cad1=textfield1.getText();
String cad2=textfield2.getText();
int x1=Integer.parseInt(cad1);
int x2=Integer.parseInt(cad2);
int suma=x1+x2;
label1=new JLabel(String.valueOf(suma));
label1.setBounds(50,120,100,30);
add(label1);
}
if (radio2.isSelected()){
String cad1=textfield1.getText();
String cad2=textfield2.getText();
int x1=Integer.parseInt(cad1);
int x2=Integer.parseInt(cad2);
int suma=x1+x2;
label1=new JLabel(String.valueOf(suma));
label1.setBounds(50,120,100,30);
add(label1);
}
}
public static void main (String[]ar){
Visual23 A=new Visual23();
A.setBounds(0,0,350,230);
A.setVisible(true);
}
}