2011-07-15 2 views
1

Avec un thread principal de base, une fenêtre contenant une phrase s'affiche et la police est mise en gras dès qu'un élément d'un menu déroulant est sélectionné.Modification de la couleur JTextArea en fonction de l'élément JComboBox sélectionné

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

public class Gui extends JFrame { 

    private JComboBox box; 
    private JTextField tf; 
    private static String [] filename = {"button.png", "x.png"}; 

    public Gui(){ 
    super("The title is"); 
    setLayout(new FlowLayout()); 
    box = new JComboBox(filename); 
    tf = new JTextField("This is a sentence", 14); 

    box.addItemListener(new ItemListener() { 
     public void itemStateChanged(ItemEvent event) { 
     if(event.getStateChange()==ItemEvent.SELECTED) { 
      tf.setFont(new Font("Serif", Font.BOLD, 14)); 
     } 
     } 
    }); 

    add(box); 
    add(tf); 
    } 
} 

Est-il possible de l'obtenir pour revenir, si je choisis l'autre membre de la menu déroulant?

+0

Oui, vous devez lire la valeur sélectionnée et fournir une logique qui détermine ce qui se passe en fonction de la valeur sélectionnée. –

+0

Le titre du sujet post est censé refléter la question. Depuis 1) vous avez ajouté le java tag 2) il est évident que vous êtes un débutant et 3) SO est principalement pour poser des questions .. Le titre «java beginner question» ne fournit absolument aucune valeur. –

+0

BTW +1 pour l'ajout de code. –

Répondre

2

Essayez:

tf.setFont(new Font("Serif", Font.PLAIN, 14)); 

Afin de vérifier le point a été sélectionné, utilisez box.getSelectedItem() ou box.getSelectedIndex().

Par exemple:

public void itemStateChanged(ItemEvent event){ 
    if(event.getStateChange()==ItemEvent.SELECTED){ 
     if (box.getSelectedIndex()==0) 
      tf.setFont(new Font("Serif", Font.BOLD, 14)); //first item selected 
     else 
      tf.setFont(new Font("Serif", Font.PLAIN, 14)); //second item selected 
    } 
} 
0

Comment l'utilisation getFont pour voir ce que vous avez, tester, et en fonction de votre changement de test ce que vous voulez?

0
box.addActionListener(new java.awt.event.ActionListener() { 
    public void actionPerformed(java.awt.event.ActionEvent evt) { 
     tf.setFont(new Font("Serif", Font.BOLD, 14)); 

    } 
}); 

Essayez ceci!

+0

Depuis le combo. a déjà un ItemListener (qui est tout ce qui est nécessaire pour former une solution), je ne vois pas ce que cette suggestion ajoute à la résolution du problème énoncé par le PO. –

Questions connexes