Quero implementar a classe JanelaAnotacao para que quando o usuário clicar nas opções Negrito, Itálico e Sublinhado e para quando selecionar um tipo de fonte, o texto do componente JTextArea seja formatado com as opções escolhidas. Quando uma opção for desmarcada, desfazer a formatação no texto.
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class CheckBoxFrame extends JFrame{
private JTextField textField; //exibe o texto na alteração de fonte
private JCheckBox boldcheckBox; //ao selecionar torna o texto em negrito
private JCheckBox italicCheckBox; //ao selecionar torna o texto em itálico
//Construtor
public CheckBoxFrame(){ super(“JCheckBox”);
setLayout(new FlowLayout()); //configura layout
//configura JTextField e sua fonte
textField = new JTextField(“Esta fonte sera modificada”,20);
textField.setFont(new Font(“Serif”,Font.PLAIN,14));
add(textField);
boldcheckBox = new JCheckBox(“Bold”); //Cria caixa de seleção p/ negrito
italicCheckBox = new JCheckBox(“Italic”); //Cria caixa de seleção p/ itálico
add(boldcheckBox);
add(italicCheckBox);
//listeners registradores para JCheckBoxes
CheckBoxHandler handler = new CheckBoxHandler();
boldcheckBox.addItemListener(handler);
italicCheckBox.addItemListener(handler);
}
private class CheckBoxHandler implements ItemListener{
//Atributos: Define por padrão como PLAIN(Fonte sem alterações)
private int valBold = Font.PLAIN; // controla o estilo de fonte negrito
private int valItalic = Font.PLAIN; //controla o estilo de fonte itálico
// Responde aos eventos da caixa de seleção
public void itemStateChanged(ItemEvent event){
//Verifica qual caixa de seleção foi ativada
if(event.getSource() == boldcheckBox){
valBold = boldcheckBox.isSelected() ? Font.BOLD : Font.PLAIN;
}
if(event.getSource() == italicCheckBox){
valItalic = italicCheckBox.isSelected() ? Font.ITALIC : Font.PLAIN;
}
//Configura a fonte do campo de texto
textField.setFont(new Font(“Serif”,valBold + valItalic,14));
}
}
public static void main(String[] args) {
CheckBoxFrame checkBoxFrame = new CheckBoxFrame();
checkBoxFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
checkBoxFrame.setSize(275,100); //Define o Tamanho do Frame
checkBoxFrame.setVisible(true); //Exibe Frame
}
}