Vous êtes sur la page 1sur 3

import java.awt.FlowLayout; import java.awt.Font; import java.awt.event.ItemListener; import java.awt.event.ItemEvent; import javax.swing.JFrame; import javax.swing.JTextField; import javax.swing.

JRadioButton; import javax.swing.ButtonGroup; // RadioButtons so semelhantes a caixas de seleo (checkbox) no sentido que tm dois // estados: selecionado e no selecionado. Em geral RadioButtons aparecem como um grupo // de botes em que apenas um boto pode ser selecionado por vez. Selecionar um boto de // opo diferente fora a remoo da seleo de todos os outros que esto selecionados. // O relacionamento lgico entre botes de opo mantido por um objeto ButtonGroup, que // em si no um objeto GUI. Um objeto ButtonGroup organiza um grupo de botes e ele // mesmo no exibido em uma interface com o usurio. Em seu lugar os botes RadioButton // do grupo so exibidos na GUI. public class usoDoRadioButton extends JFrame{ // usoDoRadioButton derivada de JFrame // Neste aplicativo o usurio pode alterar o estilo da fonte do texto de exemplo. // O aplicativo usa RadioButtons que permitem que apenas um estilo de fonte no //grupo seja selecionado de cada vez. // declara variveis para manipular fontes private JTextField texto_1; // texto usado para alterar as fontes private Font fonte_simples; // fonte para texto simples private Font fonte_negrito; // fonte para texto em negrito private Font fonte_italico; // fonte para texto em itlico private Font fonte_negrito_italico; // fonte para texto em negrito e itlico // declara botes do tipo JRadioButton private JRadioButton boto_texto_simples; // boto para selecionar texto simples private JRadioButton boto_texto_negrito; // boto para selecionar texto em negrito private JRadioButton boto_texto_italico; // boto para selecionar texto em itlico private JRadioButton boto_texto_negrito_italico; // boto para selecionar texto em // negrito e itlico private ButtonGroup grupo_de_botoes; // armazena o grupo de botes daplicao // construtor da classe usoDoRadioButton: adiciona RadioButtons ao Frame public usoDoRadioButton() { super("Testando JRadioButton"); // chama construtor do JFrame passando o // texto "Testando JRadioButton" setLayout(new FlowLayout(); // layout padro // configura JTextField com a fonte normal e adiciona ao Frame texto_1 = new JTextField("Veja o tipo de fonte mudar de acordo com o RadioButton", 36); add(texto_1); // cria botes de opo // este boto entra selecionado boto_texto_simples = new JRadioButton("Plain", true); add(boto_texto_simples);

// este boto entra desselecionado boto_texto_negrito = new JRadioButton("Bold", false); add(boto_texto_negrito); // este boto entra desselecionado boto_texto_italico = new JRadioButton("Italic", false); add(boto_texto_italico); // este boto entra desselecionado boto_texto_negrito_italico = new JRadioButton("Bold/Italic", false); add(boto_texto_negrito_italico); // Cria relacionamento lgico entre JRadioButtons. O objeto grupo_de_botoes // a "cola" que forma o relacionamento lgico entre os quatro objetos // JRadioButton e permite que somente um deles seja selecionado por vez. grupo_de_botoes = new ButtonGroup(); // cria ButtonGroup grupo_de_botoes.add(boto_texto_simples); // adiciona boto_texto_simples grupo_de_botoes.add(boto_texto_negrito); // adiciona boto_texto_negrito grupo_de_botoes.add(boto_texto_italico); // adiciona boto_texto_italico grupo_de_botoes.add(boto_texto_negrito_italico); // adiciona // boto_texto_negrito_italico ao grupo // cria objetos de fonte para textos fonte_simples = new Font("Sefif", Font.PLAIN,14); fonte_negrito = new Font("Sefif", Font.BOLD,14); fonte_italico = new Font("Sefif", Font.ITALIC,14); fonte_negrito_italico = new Font("Sefif", Font.BOLD + Font.ITALIC,14); texto_1.setFont(fonte_simples); // configura inicialmente texto com fonte normal // Registra eventos para JRadioButton passando o tipo de fonte para o // construtor JRadioButtons geram ItemEvents quando se clica neles. Abaixo // so criadas quatro instncias da classe interna ManipuladorDoRadioButton. // Neste exemplo, cada objeto ouvinte de eventos registrado para tratar o // ItemEvent gerado quando o usurio clica em um JRadioButton particular. // Note abaixo que cada RadioButton inicializado com uma fonte particular. boto_texto_simples.addItemListener(new ManipuladorDoRadioButton(fonte_simples)); boto_texto_negrito.addItemListener(new ManipuladorDoRadioButton(fonte_negrito)); boto_texto_italico.addItemListener(new ManipuladorDoRadioButton(fonte_italico)); boto_texto_negrito_italico.addItemListener(new ManipuladorDoRadioButton(fonte_negrito_italico)); } // fim do construtor usoDoRadioButton //Classe interna para tratamento de eventos gerados quando se clica em um RadioButton private class ManipuladorDoRadioButton implements ItemListener { private Font fonte; // usada para guardar a fonte passado quando o construtor de // ManipuladorDoRadioButton chamado. Veja cdigo acima. public ManipuladorDoRadioButton(Font f) { fonte = f; } // fim do construtor da classe interna ManipuladorDoRadioButton

// Trata eventos de boto: quando o usurio clica em um JRadioButton, o objeto // grupo_de_botoes desliga o jRadioButton anteriormente selecionado e o mtodo // itemStateChanged configura o JTextField com a nova fonte armazenada no boto // que foi clicado. public void itemStateChanged( ItemEvent event ) { texto_1.setFont(fonte); // simplesmente muda a fonte para o novo boto clicado } // fim do metodo itemStateChanged } // fim da classe interna ManipuladorDoRadioButton } // fim da classe usoDoRadioButton

import javax.swing.JFrame; public class testUsoDoRadioButton { public static void main(String[] args) { usoDoRadioButton botaoRadio = new usoDoRadioButton(); botaoRadio.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); botaoRadio.setSize(415, 100); botaoRadio.setVisible(true); } }

Vous aimerez peut-être aussi