Buenas Pessoal…
Estou tentando elaborar um aplicativo em java que formate um texto. Com algumas opções de fontes Acionadas por JRadioButton e também opção de negrito e itálico ativadas através de um JCheckBox porem o problema aconteceu na hora de ativar a função das JCheckBox
foram criadas algumas condições de formatação, como:
if (negrito.isSelected() && italico.isSelected())
font1 = new Font( “Serif”, Font.BOLD + Font.ITALIC, 14);
No entanto, não queria mudar a fonte, nesse momento somente o negrito e italico; Mas esse comando Font, pede a forma da letra como um atributo"obrigatório".
Bom irei compartilhar o codigo fonte do programa, se possível me ajudem rsrsrs
Vlw Galera!
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.ButtonGroup;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
import javax.swing.JTextField;
public class Gui extends JFrame{
private JTextField tf;
private Font FSerif;
private Font FMonospaced;
private Font FSansSerif;
private Font FTimesRoman;
private Font fnegrito;
private Font fitalico;
private JCheckBox negrito;
private JCheckBox italico;
private JRadioButton Serif;
private JRadioButton Monospaced;
private JRadioButton SansSerif;
private JRadioButton TimesRoman;
private ButtonGroup group;
public Gui(){
super ("By JohnnyBoy");
setLayout (new FlowLayout());
tf = new JTextField("Go Johnny, Go Johnny",25);
add(tf);
Serif = new JRadioButton("Serif",true);
Monospaced = new JRadioButton("Monospaced",false);
SansSerif = new JRadioButton("SansSerif",false);
TimesRoman = new JRadioButton("TimesRoman",false);
add(Serif);
add(Monospaced);
add(SansSerif);
add(TimesRoman);
negrito = new JCheckBox("negrito");
italico = new JCheckBox("italico");
add(negrito);
add(italico);
group = new ButtonGroup();
group.add(Serif);
group.add(Monospaced);
group.add(SansSerif);
group.add(TimesRoman);
FSerif = new Font("Serif",Font.PLAIN,14);
FMonospaced = new Font("Monospaced",Font.PLAIN,14);
FSansSerif = new Font("SansSerif",Font.PLAIN,14);
FTimesRoman = new Font("TimesRoman",Font.PLAIN,14);
tf.setFont(FSerif);
//espera o evento aconteçer. e passa a fonte do obj contrutor.
Serif.addItemListener (new HandlerClass (FSerif));
Monospaced.addItemListener (new HandlerClass (FMonospaced));
SansSerif.addItemListener (new HandlerClass (FSansSerif));
TimesRoman.addItemListener (new HandlerClass (FTimesRoman));
negrito.addItemListener (new HandlerClass (fnegrito));
italico.addItemListener (new HandlerClass (fitalico));
negrito = new JCheckBox("negrito");
italico = new JCheckBox("italico");
HandlerClass handler = new HandlerClass(tf);
negrito.addItemListener(handler);
italico.addItemListener(handler);
}
private class HandlerClass implements ItemListener{
private Font font;
public HandlerClass (Font f){
font = f;
}
public HandlerClass(JTextField tf) {
}
public void itemStateChanged(ItemEvent event){
tf.setFont(font);
}
public void itemStateChanged1(ItemEvent event1){
Font font1 = null;
if (negrito.isSelected() && italico.isSelected())
font1 = new Font( "Serif", Font.BOLD + Font.ITALIC, 14);
else if (negrito.isSelected())
font1 = new Font("Serif",Font.BOLD,14);
else if (italico.isSelected())
font1 = new Font("Serif",Font.ITALIC,14);
else
font1 = new Font("Serif",Font.PLAIN,14);
tf.setFont(font1);
}
}
}
Esse programa é acessado por outra classe
import javax.swing.JFrame;
import javax.swing.JOptionPane;
public class apples {
public static void main(String[] args) {
//iog = apelido para o objeto da inferfacegrafica
Gui go = new Gui();
go.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
go.setSize(300,250);
go.setVisible(true);
}
}