2012-02-12 9 views
1

基本的にはJComboBoxがあり、現在は選択した値がテキストボックスのコンボボックスの隣に表示されます。別の値が(この表示値はコンボボックスから選択した値に固有のテキストボックスに表示されJcomboboxは、アイテムが選択されているときに値が表示されます

- しかし、私がやりたいものを、コンボボックスから値を選択するとある

したがって、この場合には、私はコンボボックスのサイズを有し、そして私がテキストフィールドに表示されたコストをしたい。

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

public class ComboBox{ 
    JComboBox combo; 
    JTextField txt; 
    public static void main(String[] args) { 
    ComboBox b = new ComboBox(); 
    } 

    public ComboBox(){ 
    String course[] = {"18x18cm (7x7inches)","18x20cm (7x8inches)",}; 
    JFrame frame = new JFrame("Cost Calculator"); 
    JPanel panel = new JPanel(); 
    combo = new JComboBox(course); 
    combo.setBackground(Color.white); 
    combo.setForeground(Color.black); 
    txt = new JTextField(25); 
    panel.add(combo); 
    panel.add(txt); 
    frame.add(panel); 
    combo.addItemListener(new ItemListener(){ 
     public void itemStateChanged(ItemEvent ie){ 
     String str = (String)combo.getSelectedItem(); 
     txt.setText(str); 
     } 
    }); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(400,200); 
    frame.setVisible(true); 
    } 
} 

だから私の質問は、私はこのことについて行く方法です?

+0

すでに選択した値をコンボボックスから取得する方法と、この選択が変更されたときにテキストフィールドを更新する方法を知っているようです。だから質問は何ですか?あなたはサイズを持っているときにコストを取得するには?それはあなたが投稿したコードで答えることができないものです。 – Robin

+0

Ahh、コンボボックスからの値の同一コピーをテキストフィールドに複製して表示するのではなく、基本的に見ると、コンボボックスから値を選択し、テキストフィールドに表示されているものと関連付けられています。 たとえば、現在(comboxbox値=表示されているテキスト): 7x7cm =£100 – Pebbs

+0

これは私が理解した部分でした。しかし、あなたはどのようにして質問の利用可能な情報をあなたに答えさせるのでしょうか?あなたは7 * 7cmから100ポンドに変換する方法を知っている唯一の人です – Robin

答えて

2

あなたは何をすべきJComboBoxのデータを保持できるように新しいクラスを作成していますJTextFieldは互いに結びついています。

class MyClass{ 
    private String comboStr; 
    private String textStr; 

    public MyClass{ 
     comboStr = "this goes in my combobox"; 
     textStr = "this goes in my textfield"; 
    } 

    public String toString(){ 
     return comboStr; 
    } 

    public String getText(){ 
     return textStr; 
    } 
} 

(あなたは(のtoStringを必要とする)コンボボックスの各要素が正しいテキストが表示されていることをするように。)

次に、あなたのリスナーに、あなたはJTextFieldのためのテキストを設定するには、以下を使用することができます。 JComboBox表示異なるテキストを作るために

MyClass myObj = (MyClass)combo.getSelectedItem(); 
txt.setText(myObj.getText()); 
0

、それについての情報を持っているが、オブジェクトがあるとき、あなたはJComboBoxに追加されているクラスのtoString()メソッドをオーバーライドする必要があり、Googleを言います。これは、JComboBoxが自分自身を設定すると、その中のすべてのオブジェクトに対してtoString()メソッドを使用して表示テキストを作成するためです。

関連する問題