2011-07-15 11 views
1

基本的なメインスレッドに加えて、文を含むウィンドウが表示され、ドロップダウンメニューから何かが選択されるとすぐにフォントを太字に変更します。選択したJComboBoxの項目に基づいてJTextAreaの色を変更します

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); 
    } 
} 

ドロップダウンメニューから他のメンバーを選択すると、それを元に戻す方法はありますか?

+0

はい、選択した値に基づいて何が起こるかを決定するロジックを提供します。 –

+0

投稿のタイトルは質問を反映しているはずです。 1)Javaタグを追加したので2)初心者であることは明白です。3)主に質問をしています。タイトル「Java初心者の質問」は絶対に価値がありません。 –

+0

コードを追加するのにBTW +1。 –

答えて

2

試してみてください。

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

項目にチェックするためには、box.getSelectedItem()box.getSelectedIndex()を使用して、選択しました。例えば

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

どのようにそれをテストし、あなたが持っているものを見るためのgetFontを使用して、あなたが望むものをテスト変化に基づいてはどうですか?

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

    } 
}); 

+0

コンボですから。既にソリューションを形成するために必要なItemListenerを持っているため、この提案がOPの述べられている問題を解決するために何を追加するのか分かりません。 –

関連する問題