-1

と を作成しましJListJTextField。私の では、JListいくつかの選択項目を書きましたが、選択した選択項目の名前を に表示したいと考えていJTextFieldます。

jTextField2アクション リスナーにどのようなコードを記述する必要がありますか。たとえば、[コンピューター] を選択すると、[コンピューター]表示されます。JTextField

リストモデル

jList1Model = new DefaultComboBoxModel (new String[] { "Computer","Mouse","HDD"});

jList1 = new JList();
getContentPane().add(jList1);
jList1.setModel(jList1Model);
jList1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jTextField2 = new JTextField();

getContentPane().add(jTextField2);
jTextField2.setEditable(false);
jTextField2.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
    }
});
4

3 に答える 3

2

ListSelectionListenerリスト選択の変更時に発火するものを追加する必要があります。

  jList1.addListSelectionListener(new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent evt) {
            jList1ValueChanged(evt);
        }
    });

とでListSelectionEvent

 private void jList1ValueChanged(ListSelectionEvent evt) {

    if(!jList1.getValueIsAdjusting())
    { 
    jTextField2.setText((String) jList1.getSelectedValue());
    }
  }

短い例を次に示します。

import javax.swing.AbstractListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

public class JListTest  {
    private JList jList1;
    private JPanel jPanel1;
    private JTextField jTextField2;
    private JFrame frame;


    public JListTest() {
        initComponents();
    }

    private void initComponents() {

        jPanel1 = new JPanel();
         jList1 = new JList();
        jTextField2 = new JTextField();
        frame =new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

        jList1.setModel(new AbstractListModel() {
            String[] strings = { "Computer", "Mouse", "HDD" };
            public int getSize() { return strings.length; }
            public Object getElementAt(int i) { return strings[i]; }
        });
        jList1.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent evt) {
                jList1ValueChanged(evt);
            }
        });


        jTextField2.setText("jTextField1");
        jPanel1.add(jList1);
        jPanel1.add(jTextField2);
        frame.add(jPanel1);
        frame.pack();
        frame.setVisible(true);


    }

  private void jList1ValueChanged(ListSelectionEvent evt) {

    if(!jList1.getValueIsAdjusting())
    { 
    jTextField2.setText((String) jList1.getSelectedValue());
    }
}


    public static void main(String args[]) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new JListTest();
            }
        });
    }
}
于 2013-02-24T13:35:32.523 に答える
1

これはどう:

    jList1t.addListSelectionListener(new ListSelectionListener() {
        public void valueChanged(ListSelectionEvent e) {
            jTextField2.setText((String) jList1.getSelectedValue());
        }
    });

(そして jTextField2 はfinal!)

于 2013-02-24T13:31:13.137 に答える
-1

javax.swing.JComboBox cboSelect = new javax.swing.JComboBox(); 
javax.swing.JTextField tfResult = new javax.swing.JTextField(); cboSelect.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Computer", "Mouse", "HDD" })); cboSelect.addItemListener(new java.awt.event.ItemListener() { public void itemStateChanged(java.awt.event.ItemEvent evt) { tfResult.setText(cboSelect.getSelectedItem().toString()); } });
于 2013-02-24T13:16:08.103 に答える