JList bei Windowbuilder

francisca93

Mitglied
Hallo,
ich will (bzw. 'soll') mich in den Java-Windowbuilder einarbeiten, und dazu ein Applet mit zwei Buttons, einem Textfeld und einer JList erstellen. Durch den Button "Hinzufügen" sollen Zeichenketten in die Liste aufgenommen werden, durch "Löschen" soll eine aktivierte Zeichenkette entfernt werden.
Das Fenster hab ich so hinbekommen, wie es sein soll, nur mit der Funktion klappt es noch nicht (ich wollte zunächst mal das Einfügen hinbekommen, das Löschen hab ich erstmal aufgeschoben). Wahrscheinlich nur irgendein Anfängerfehler, bitte nicht lustig machen deswegen 😉

So sieht mein Text bisher aus:

Java:
import javax.swing.DefaultListModel;
import javax.swing.JApplet;
import javax.swing.JList;
import javax.swing.JTextField;
import javax.swing.JButton;

import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.Font;
import javax.swing.JRadioButton;


public class MyApplet extends JApplet {
  
   private DefaultListModel<String> data = new DefaultListModel<String>();
   private JTextField txtEingabe;
   private JButton btnHinzufuegen;
   private JButton btnLoeschen;
   private JList list;

  
   public MyApplet() {
       getContentPane().setLayout(null);
      
       txtEingabe = new JTextField();
       txtEingabe.setFont(new Font("Times New Roman", Font.PLAIN, 12));
       txtEingabe.setBounds(56, 69, 241, 20);
       getContentPane().add(txtEingabe);
       txtEingabe.setColumns(10);
      
       btnHinzufuegen = new JButton("hinzufuegen");
       btnHinzufuegen.setFont(new Font("Times New Roman", Font.BOLD, 12));
       btnHinzufuegen.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent arg0) {
              
               String text = txtEingabe.getText();
               data.addElement(text);
           }
       });
       btnHinzufuegen.setBounds(328, 66, 110, 26);
       getContentPane().add(btnHinzufuegen);
      
       btnLoeschen = new JButton("loeschen");
       btnLoeschen.setBounds(328, 132, 110, 26);
       getContentPane().add(btnLoeschen);
      
       list = new JList();
       list.setBounds(56, 109, 241, 167);
       getContentPane().add(list);

   }
}
Wär echt super wenn da jemand weiterhelfen könnte 🙂
 
Danke, das Hinzufügen funktioniert jetzt. Nun muss ich noch das Löschen hinkriegen; dazu soll die Methode "delItem()" verwendet werden. Ich habe dazu folgendes eingefügt:
Java:
public void actionPerformed(ActionEvent arg0) {
               int index = list.getSelectedIndex();
               list.delItem(index);

Da gibt es aber eine Fehlermeldung:" The method delItem(int) is undefined for the type JList".
Was könnte denn da falsch sein?
 
O.k., ich hab es jetzt es jetzt mit "data.removeElementAt(index)" gemacht, jetzt geht es. (Die Aufgabenstellung ist nicht so klar formuliert, ich glaube man muss nicht unbedingt delItem nehmen).

Jetzt wäre es noch ganz schön, wenn beim Anklicken des "Hinzufügen"-Buttons das Textfeld wieder leer werden würde, damit man den nächsten Eintrag reinschreiben kann (steht zwar auch nicht ausdrücklich in der Aufgabenstellung, aber naja, sähe schöner aus).
 
Weiß da keiner was? Ich hab es jetzt so versucht:

Java:
btnHinzufuegen.addActionListener(new ActionListener() {
           public void actionPerformed(ActionEvent arg0) {
               
               String text = txtEingabe.getText();
               data.addElement(text);
               txtEingabe.removeElement();
           }
       });
Aber "removeElement" will er für JTextField nicht haben. Was kann man denn stattdessen für einen Befehl verwenden?
 

Zurück
Oben