2016-04-27 16 views
-1

Ich möchte eine combobox und eine textbox erstellen. Der Benutzer gibt einen Text in das Textfeld ein und der Text wird als Element combobox hinzugefügt.Wie kann ich Text aus Textfeld in die Combobox hinzufügen?

Wie kann ich es tun? Ich habe einen Code geschrieben, aber ich konnte nicht finden, was ich in actionlistener schreiben werde.

import java.awt.FlowLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JComboBox; 
import javax.swing.JFrame; 
import javax.swing.JTextField; 

public class Q2 extends JFrame { 

    JTextField t; 
    JComboBox combobox = new JComboBox(); 

    public Q2() { 
     t = new JTextField("Enter text here", 20); 
     t.setEditable(true); 
     t.addActionListener(new act()); 
     add(t); 
     add(combobox); 

     combobox.addItem(t.getText().toString()); 
     setLayout(new FlowLayout()); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setSize(300, 300); 
     setLocationRelativeTo(null); 
     setVisible(true); 
    } 

    public class act implements ActionListener { 
     public void actionPerformed(ActionEvent e) { 

     } 
    } 

    public static void main(String[] args) { 
     Q2 test = new Q2(); 
    } 
} 
+0

warum Sie ein Textfeld benötigen, um Daten auf der jcombobox zu schreiben, können Sie gerade die kombinierbare bearbeitbare machen. Ich sag ja nur. – Priyamal

+0

Ich bin neu in Java und ich möchte alle Codes lernen :) Und auch ich nicht wissen, editierbare combobox .. –

+0

k ill posten es als Antwort dann warten. – Priyamal

Antwort

0

habe ich eine Taste, und die Funktionalität, über die JComboBox auf die Schaltfläche zum Hinzufügen. Hier ein Beispiel:

import java.awt.FlowLayout; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.JButton; 
import javax.swing.JComboBox; 
import javax.swing.JFrame; 
import javax.swing.JTextField; 

public class Q2 extends JFrame { 

    JTextField t; 
    JComboBox combobox; 
    JButton b; 

    public Q2() { 
     combobox = new JComboBox(); 
     t = new JTextField("Enter text here", 20); 
     t.setEditable(true); 
     b = new JButton("Add"); 
     b.addActionListener(new act()); //Add ActionListener to button instead. 
     add(t); 
     add(combobox); 
     add(b); 

     //combobox.addItem(t.getText().toString()); //Moved to ActionListener. 
     setLayout(new FlowLayout()); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     setSize(300, 300); 
     setLocationRelativeTo(null); 
     setVisible(true); 
    } 

    public class act implements ActionListener { 
     public void actionPerformed(ActionEvent e) { 
      combobox.addItem(t.getText()); //Removed .toString() because it returns a string. 
     } 
    } 

    public static void main(String[] args) { 
     Q2 test = new Q2(); 
    } 
} 
+0

danke :) das ist besser als das, was ich machen will :) –

0
private JTextComponent comboboxEditor; 

Vector ComboData = new Vector(); 

public void addActionListners() { 

     //adding action listner to the NameComboBox 
     this.comboboxEditor = (JTextComponent) yourCombo.getEditor().getEditorComponent(); 
     comboboxEditor.addKeyListener(new KeyAdapter() { 

      public void keyReleased(KeyEvent evt) { 
       int i = evt.getKeyCode(); 
       if (i == 10) { 
        //combobox action on enter 
        ComboData.add(comboboxEditor.getText()); 
        yourCombo.setListData(ComboData); 
       } 

      } 
     }); 
} 

Sie haben Ihre editierbare Eigenschaft in comboBox auf true setzen sonst Sie in der Lage werden nicht auf comboBox zu schreiben. Stellen Sie sicher, dass Sie die Methode addActionListners() beim Start (Konstruktor) aufrufen. Ich gebe der Combobox die Funktionalität eines J-Text-Feldes, indem ich den Editor der Combobox zu JtextComponent ändere. Versuchen Sie dieses Beispiel

+0

vielen dank :) –