2016-07-31 11 views
0

私はテーブルを持っており、各行に私は任意の演算子とvalue1フィールド値2フィールドを選択できる演算子のcomboxを持っています。 COMBO BOX DEFAULT OPERATORは「等しい」です。私の質問は、任意の行のコンボボックスをクリックすると、選択した行の値を取得し、選択した演算子に基づいて何らかの操作を実行できるように選択している演算子を取得する必要があります。 .... それ以外の場合は、コンボボックスオペレータを2のフィールドにクリアする必要があります。 テーブル内のコンボボックスをクリックすると選択行を取得する方法

+1

は、Java SWTにするJComboBoxをお願いしていますか? – vanloc

+0

はいvan loc .... –

+0

私の答えをご覧ください。 – vanloc

答えて

0

コンボ内の知っている項目をクリックします。このよう

は、アイテムのインデックスは、注文番号で表示されます:

combo.addActionListener (new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     //doSomething(); 
    } 
}); 

あなたは、現在の項目が選択を取得するための3つの方法があります。

int selectedIndex = myComboBox.getSelectedIndex(); 

- または -

項目がオブジェクトで選択されます。このObjectには、多くのメソッドがあります。

- または -

Object selectedObject = myComboBox.getSelectedValue();

は、文字列型で選択した項目の実際の値を取得します。 String selectedValue = myComboBox.getSelectedValue().toString();

あなたは(@secarioメンバーから)ここで、完全なサンプルコードを見ることができます:

import java.awt.FlowLayout; 
import java.awt.event.*; 

import javax.swing.*; 

public class MyWind extends JFrame{ 

    public MyWind() { 
     initialize(); 
    } 

    private void initialize() { 
     setSize(300, 300); 
     setLayout(new FlowLayout(FlowLayout.LEFT)); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     final JTextField field = new JTextField(); 
     field.setSize(200, 50); 
     field.setText("    "); 

     JComboBox comboBox = new JComboBox(); 
     comboBox.setEditable(true); 
     comboBox.addItem("item1"); 
     comboBox.addItem("item2"); 

     // 
     // Create an ActionListener for the JComboBox component. 
     // 
     comboBox.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent event) { 
       // 
       // Get the source of the component, which is our combo 
       // box. 
       // 
       JComboBox comboBox = (JComboBox) event.getSource(); 

       Object selected = comboBox.getSelectedItem(); 
       if(selected.toString().equals("item1")) 
       field.setText("30"); 
       else if(selected.toString().equals("item2")) 
        field.setText("40"); 

      } 
     }); 
     getContentPane().add(comboBox); 
     getContentPane().add(field); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 
       new MyWind().setVisible(true); 
      } 
     }); 
    } 
} 
関連する問題