Dúvida JRadioButton

Olá pessoal,

venho com mais uma dúvida:
Copiei este exemplo do site da Impacta Online(curso IAD que eu faço). o exemplo deveria mostrar um frame com as 4 caixas de seleção, e cada caixa mudaria a fonte do texto do text field, porém o programa só mostra 3 caixas de seleção e não muda a fonte.
OBS.: Copiei o exemplo exatamente como estava no site.

package swing;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class ExemploJRadioButton extends JFrame {
	private JRadioButton radioButtonNormal;
	private JRadioButton radioButtonNegrito;
	private JRadioButton radioButtonItalico;
	private JRadioButton radioButtonItalicoNegrito;
	private ButtonGroup radioGroup;
	private JTextField texto;
	private Font fonteNormal;
	private Font fonteNegrito;
	private Font fonteItalico;
	private Font fonteItalicoNegrito;
	private Container c;
	private TratadoraEventoJRadioButton tratadoraJRadioButton;
	
	public ExemploJRadioButton(){
		super("RadioButton exemplo");
		c=getContentPane();
		c.setLayout(new FlowLayout());
		texto=new JTextField("Clique no botões para ver o resultado",25);
		c.add(texto);
		tratadoraJRadioButton=new TratadoraEventoJRadioButton();
		radioGroup=new ButtonGroup();
		//criação dos JRadioGroups
		radioButtonNormal=adicionarRadio("Normal", true);
		radioButtonNegrito=adicionarRadio("Negrito",false);
		radioButtonItalico=adicionarRadio("Itálico",false);
		radioButtonItalicoNegrito=adicionarRadio("Negrito + Italico",false);
		//criação das fontes
		fonteNormal=new Font("TimesRoman",Font.PLAIN,14);
		fonteNegrito=new Font("TimesRoman",Font.BOLD,14);
		fonteItalico=new Font("TimesRoman",Font.ITALIC,14);
		fonteItalicoNegrito=new Font("TimesRoman",Font.BOLD + Font.ITALIC,14);
		texto.setFont(fonteNormal);
		setSize(330,100);
		//centraliza o frame
		setLocationRelativeTo(null);
		//encerra o programa quando o x for clicado
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
	}
	public static void main(String args[]){
		ExemploJRadioButton frame=new ExemploJRadioButton();
	}
	//definição do método para adicionar componentes 
	private JRadioButton adicionarRadio(String nome,boolean b){
		JRadioButton radioBot=new JRadioButton(nome, b);
		c.add(radioBot);
		radioGroup.add(radioBot);
		return radioBot;
	}
	private class TratadoraEventoJRadioButton implements ItemListener{
		public void itemStateChanged(ItemEvent e){
			if(e.getSource()==radioButtonNormal){
				texto.setFont(fonteNormal);
			}else if(e.getSource()==radioButtonNegrito){
				texto.setFont(fonteNegrito);
			}else if(e.getSource()==radioButtonItalico){
				texto.setFont(fonteItalico);
			}else if(e.getSource()==radioButtonItalicoNegrito){
				texto.setFont(fonteItalicoNegrito);
			}
			texto.repaint();
		}
	}
}

Valeu :slight_smile:

Faltou duas linhas de código ai, ou o livro está errado, olhe:

[code]package swing;

import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class ExemploJRadioButton extends JFrame {

private JRadioButton radioButtonNormal;
private JRadioButton radioButtonNegrito;
private JRadioButton radioButtonItalico;
private JRadioButton radioButtonItalicoNegrito;
private ButtonGroup radioGroup;
private JTextField texto;
private Font fonteNormal;
private Font fonteNegrito;
private Font fonteItalico;
private Font fonteItalicoNegrito;
private Container c;
private TratadoraEventoJRadioButton tratadoraJRadioButton;

public ExemploJRadioButton() {
    super("RadioButton exemplo");
    c = getContentPane();
    c.setLayout(new FlowLayout());
    texto = new JTextField("Clique no botões para ver o resultado", 25);
    c.add(texto);
    tratadoraJRadioButton = new TratadoraEventoJRadioButton();
    radioGroup = new ButtonGroup();
    //criação dos JRadioGroups
    radioButtonNormal = adicionarRadio("Normal", true);
    radioButtonNegrito = adicionarRadio("Negrito", false);
    radioButtonItalico = adicionarRadio("Itálico", false);
    radioButtonItalicoNegrito = adicionarRadio("Negrito + Italico", false);
    //criação das fontes
    fonteNormal = new Font("TimesRoman", Font.PLAIN, 14);
    fonteNegrito = new Font("TimesRoman", Font.BOLD, 14);
    fonteItalico = new Font("TimesRoman", Font.ITALIC, 14);
    fonteItalicoNegrito = new Font("TimesRoman", Font.BOLD + Font.ITALIC, 14);
    texto.setFont(fonteNormal);
    setSize(330, 100);
    //centraliza o frame
    setLocationRelativeTo(null);
    //encerra o programa quando o x for clicado
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    pack();//essa linha dá um pack no seu JFrame, ele irá ajustar a tela de acordo com seus componentes.
    setVisible(true);
}

public static void main(String args[]) {
    ExemploJRadioButton frame = new ExemploJRadioButton();
}
//definição do método para adicionar componentes 

private JRadioButton adicionarRadio(String nome, boolean b) {
    JRadioButton radioBot = new JRadioButton(nome, b);
    radioBot.addItemListener(tratadoraJRadioButton);//faltou adicionar o evento para cada JRadioButton
    c.add(radioBot);
    radioGroup.add(radioBot);
    return radioBot;
}

private class TratadoraEventoJRadioButton implements ItemListener {

    @Override
    public void itemStateChanged(ItemEvent e) {
        if (e.getSource() == radioButtonNormal) {
            texto.setFont(fonteNormal);
        } else if (e.getSource() == radioButtonNegrito) {
            texto.setFont(fonteNegrito);
        } else if (e.getSource() == radioButtonItalico) {
            texto.setFont(fonteItalico);
        } else if (e.getSource() == radioButtonItalicoNegrito) {
            texto.setFont(fonteItalicoNegrito);
        }
        texto.repaint();
    }
}

}
[/code]

Realmente estava na apostila. Eu acabei não copiando.
hahaha

Valeu!

:slight_smile: