2015-12-14 1 views
0

Je ne reçois pas le résultat que je veux dans ce code, qui est quand je clique sur la case à cocher puis le texte de JTextField devrait être en gras, mais il ne se produire. Aidez-moi s'il vous plaît.Modifier le style de police de JTextField quand JCheckbox est coché et JButton est cliqué

public class GUI extends JFrame{ 
    //CheckBoxs 
    private JCheckBox box1; 
    private JCheckBox box2; 
    //Buttons 
    private JButton button1; 
    private JButton button2; 
    //Text 
    private JTextField fnam; 
    private JTextField snam; 
    public GUI(){ 
     //basic 
     super("Program"); 
     setLayout(new FlowLayout()); 
     //add 
     box1 = new JCheckBox("Button 1 Activate"); 
     box2 = new JCheckBox("Button 2 Activate"); 
     add(box1); 
     add(box2); 
     button1 = new JButton("Select First Name"); 
     button2 = new JButton("Select Second Name"); 
     add(button1); 
     add(button2); 
     fnam = new JTextField("Mena Farid",10); 
     snam = new JTextField("Malak Mamdoh",12); 
     fnam.setEditable(false); 
     snam.setEditable(false); 
     fnam.setFont(new Font("Serif",Font.PLAIN,10)); 
     snam.setFont(new Font("Serif",Font.PLAIN,12)); 
     add(fnam); 
     add(snam); 

     //ActionListener and Events 
     Handler Handle = new Handler(); 
     Handler2 Handle2 = new Handler2(); 
    box1.addItemListener(
      new ItemListener(){ 
      public void itemStateChanged(ItemEvent e){ 
       if(box1.isSelected()) 
        button1.addItemListener(Handle); 
      } 
     } 
    ); 
    box2.addItemListener(
      new ItemListener(){ 
      public void itemStateChanged(ItemEvent e){ 
       if(box2.isSelected()) 
        button2.addItemListener(Handle2); 
      } 
     } 
    ); 
} 
private class Handler implements ItemListener{ 
    public void itemStateChanged(ItemEvent f){ 
     Font font = null; 
     font = new Font("Serif",Font.BOLD,10); 
     fnam.setFont(font); 
    } 
} 
private class Handler2 implements ItemListener{ 
    public void itemStateChanged(ItemEvent f){ 
     Font font2 = null; 
     font2 = new Font("Serif",Font.BOLD,12); 
     snam.setFont(font2); 
    } 
    } 
} 

Le problème est le format JTextField est censé être transformé en gras après que je coche la case à cocher et cliquez sur le bouton, mais il ne se produit pas.

+0

Votre code n'a aucun sens. Dans votre écouteur d'élément de case à cocher, vous affectez un gestionnaire d'événements au bouton au lieu de définir le poids de la police de l'étiquette du bouton. –

+0

@DanielB Avez-vous eu ce que j'essaie de faire? Je suis en train d'essayer de rendre le bouton activé en cochant la case et quand je clique sur le bouton Il change la police du JTextField que j'ai déjà – BombrickJL

+0

@BombrickJL Désolé, complètement raté la partie 'button1'. Mais vous ne pouvez pas utiliser 'ItemListener' pour un' JButton'. Utilisez un 'JToggleButton' ou un' ActionListener'. –

Répondre

0

@LuxxMiner ow .. Merci d'avoir résolu mon problème. J'ai utilisé ItemListener pour le bouton au lieu de ActionListener tout le temps et c'était le problème.