Auslesen der JList

Status
Nicht offen für weitere Antworten.

babaganoush

Mitglied
Weiß vielleicht jemand einen Rat für mich? :(

das Problem an der Sache ist, dass in dieser JList in einer Zeile mehrere Sachen eingetragen sind, die sauber getrennt ausgelesen werden sollen (wichtig ist halt, dass sie nachher noch dem Index zugeordnet werden können):
Code:
((DefaultListModel) liste.getModel()).addElement(combo.getSelectedItem()
					+ "          " + t.getText() + " m" + "          " + t2.getText())

demnach möchte ich einen String erstellen für "combo.getSelectedItem()" und 2 Doubles für "t.getText()" bzw. "t2.getText()"

hat hier jemand eine Idee? :bahnhof:
 

Marco13

Top Contributor
Du solltest auf jeden Fall in Erwägung ziehen, diese Daten in einer eigenen Klasse zu speichern
Code:
class Data
{
    private String s;
    private double d0;
    private double d1;
   
    // Konstruktor, get-Methoden, ggf. set-Methoden
    ....

    public String toString()
    {
        return s+"      "+d0+"     "+d1;
    }
}

Und die dann in die Liste einfügen
Code:
(DefaultListModel) liste.getModel()).addElement(new Data(combo.getSelectedItem(), t.getText(), t2.getText()));

Dann kannst du dir später direkt die Einträge und die darin enthaltenen Daten holen.
Code:
Data e = (Data)list.getSelectedItem();
double d = e.getSecondDouble();

Die Alternative wäre, den Entry in einen String umzuwandeln, und da die gewünschten Daten rauszuparsen :? das geht, wäre aber IMHO ziemlich ... murksig.... :?
Code:
String a = String.valueOf(list.getSelectedItem());
StringTokenizer st = new StringTokenizer(a);
String s = st.nextToken();
double d0 = Double.parseDouble(st.nextToken());
double d1 = Double.parseDouble(st.nextToken());
 

babaganoush

Mitglied
vielen dank schonmal für die antwort, habe mich auch direkt drangemacht, nur haperts bei der kommunikation zwischen beiden klassen :-(

habe wie du gesagt hast eine neue klasse "daten" erstellt und kann auch wunderbar auf methoden und variablen der hauptklasse "xy" zugreifen:

Code:
import java.awt.event.ActionEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

class daten extends xy {

	public String s01;
	public double d01;
	public double d02;

	daten(String titel) {
		super(titel);

		combo.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent e) {
				String s01 = (String) combo.getSelectedItem();
			}
		});
	}
}

nur kriege ich ne fehlermeldung wenn ich in der Hauptklasse testweise folgendes versuche:

Code:
add(t5);// testfeld
		c.gridx = 5;
		c.gridy = 10;
		c.gridwidth = 1;
		c.gridheight = 1;
		gbl.setConstraints(t5, c);
		t5.setText(s01);

"s01" wird als Fehler rausgeworfen weil die klasse es nicht kennt :-(
weißt du da auch direkt nen Anfängertipp? :-D
 

Marco13

Top Contributor
Man braucht auch ein Objekt, wo die Daten drinliegen.

Daten daten = new Daten("Titel");
t5.setText(daten.s01);

Allerdings glaube ich, dass du da etwas falsch verstanden hast. Die comboBox sollte NICHT in den Daten verfügbar sein :shock:
 

babaganoush

Mitglied
meine hauptklasse sieht als minimalbeispiel so aus:


Code:
import javax.swing.*;
import java.awt.*;
import java.awt.dnd.DropTarget;
import java.awt.event.*;
import java.awt.BorderLayout;
import javax.swing.JList;
import javax.swing.JScrollPane;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.DefaultListModel;

public class xy extends JFrame {

	private static final String i = null;
	private JButton b2;
	private DefaultListModel model;
	private JList liste = null;

	private Double dl2;

	JButton b1;
	JComboBox combo = new JComboBox();
	JTextField t = new JTextField("0,00", 5);
	JTextField t2 = new JTextField("0,00", 5);

	class b1Lauscher implements ActionListener {
		public void actionPerformed(ActionEvent e) {
			int i;
			((DefaultListModel) liste.getModel()).addElement(combo.getSelectedItem()+ " " + t.getText() + " " + 
                        t2.getText());
		}
	}

	xy(String titel) {
		super(titel);
		final DefaultListModel model = new DefaultListModel();
		liste = new JList(model);

		add(combo);
		combo.setEditable(true);
		combo.addItem("a");
		combo.addItem("b");
		add(b1);
		add(t);
		add(t2);
		add(liste);
		b1.addActionListener(new b1Lauscher());
	}

	public static void main(String[] args) {
		xy fenster = new xy("gui");
		fenster.pack();
		fenster.setSize(650, 595);
		fenster.setVisible(true);
	}
}

die daten-klasse habe ich ja gerade schon gezeigt :-( (nicht viel drinn). hat also jemand vielleicht erbarmen mich zu erleuchten, ich versteh es immer noch nicht :-(
 
S

SlaterB

Gast
ich kann keine konkrete Frage erstellen,

auf jeden Fall sollte die Datenklasse nicht von xy, also von JFrame erben,
jeder Eintrag wäre dann ein eigenen JFrame!
das kann zu nichts gut sein, auch nicht zum Zugriff auf Variablen von xy,
denn jedes Objekt der Datenklasse ist ja ein eigenes xy-Objekt,
während du dich wahrscheinlich nur für das bestimmte einzelne xy-Objekt interessiert, welches auf der GUI angezeigt wird
 

babaganoush

Mitglied
ich dachte dass ist das normale vorgehen wenn man auf variablen der klasse zugreifen möchte?

die frage ist: wie kann ich in der xy(main) klasse auf variablen der daten-klasse zugreifen
 
S

SlaterB

Gast
wenn
Daten d = ..;
ein Daten-Objekt ist,
dann mit
d.getIrgendwas();

so wie jedes Objekt auf irgendein anderes zugreift?!

von liste kannst du das Model abfragen:
> liste.getModel()

was ist bei den Daten anders?
 

Marco13

Top Contributor
Mitleid .. ja ... das ist aber nichts positives. So wirst du nicht weit kommen
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.dnd.DropTarget;
import java.awt.event.*;
import java.awt.BorderLayout;
import javax.swing.JList;
import javax.swing.JScrollPane;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.DefaultListModel;


class Data
{
    private String s;
    private double d0;
    private double d1;

    public Data(Object object, String s0, String s1)
    {
        s = String.valueOf(object);
        d0 = Double.parseDouble(s0);
        d1 = Double.parseDouble(s1);
    }

    public String getString()
    {
        return s;
    }

    public double getD0()
    {
        return d0;
    }

    public double getD1()
    {
        return d1;
    }

    public String toString()
    {
        return s+" "+d0+" "+d1;
    }
}
public class xy extends JFrame
{

   private static final String i = null;
   private JButton b2;
   private DefaultListModel model;
   private JList liste = null;

   private Double dl2;

   JButton b1;
   JComboBox combo = new JComboBox();
   JTextField t = new JTextField("0.00", 5);
   JTextField t2 = new JTextField("0.00", 5);

   class b1Lauscher implements ActionListener {
      public void actionPerformed(ActionEvent e)
      {
         int i;
         Data data = new Data(combo.getSelectedItem(), t.getText(), t2.getText());
         ((DefaultListModel) liste.getModel()).addElement(data);
      }
   }

   xy(String titel) {
      super(titel);
      setLayout(new FlowLayout());
      final DefaultListModel model = new DefaultListModel();
      liste = new JList(model);
      b1 = new JButton("Leg's in die Liste");

      getContentPane().add(combo);
      combo.setEditable(true);
      combo.addItem("a");
      combo.addItem("b");
      getContentPane().add(b1);
      getContentPane().add(t);
      getContentPane().add(t2);
      getContentPane().add(liste);
      b1.addActionListener(new b1Lauscher());

      final JLabel label = new JLabel("Selected: ");

      JButton b2 = new JButton("Zeig' an, welches von der Liste ausgewählt ist");
      b2.addActionListener(new ActionListener()
      {
          public void actionPerformed(ActionEvent e)
          {
              Data data = (Data)liste.getSelectedValue();
              label.setText("Selected: "+String.valueOf(data));
          }
      });
      getContentPane().add(b2);
      getContentPane().add(label);



   }

   public static void main(String[] args) {
      xy fenster = new xy("gui");
      fenster.pack();
      fenster.setSize(650, 595);
      fenster.setVisible(true);
   }
}
 

babaganoush

Mitglied
hey wow, echt nett von dir :toll:

hab mich auch direkt drangemacht weiter zu programmieren, es ist ja nicht so als würde ich mich damit nicht beschäftigen. Die meißten Sachen kriege ich ja alleine raus :-D

zum Beispiel auch wie ich ein bisschen freien Platz in die Liste zwischen den elemente kriege

Code:
+"       "

funktioniert nur leider nicht zwischen den letzten beiden elementen :-(

aber vielen dank in jedem fall :bae:
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JList, aus selectedValue bestimmten Wert aus Containerklasse auslesen Java Basics - Anfänger-Themen 4
D Dateien aus Ordner auslesen und in JList anzeigen! Java Basics - Anfänger-Themen 33
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
T array auslesen Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
U Sekunden von LocalTime auslesen, wie möglich? Java Basics - Anfänger-Themen 1
E Outlook ordner auslesen Java Basics - Anfänger-Themen 4
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
J Jsonfile auslesen Java Basics - Anfänger-Themen 8
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
J Json Datei auslesen Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N JTable auslesen Java Basics - Anfänger-Themen 6
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
I Druckerauflösung auslesen - mittlerweile möglich? Java Basics - Anfänger-Themen 4
B WSDL auslesen? Java Basics - Anfänger-Themen 8
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
S CSV auslesen UTF-8 Problem Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
x-tshainge Interface Wie kann ich aus Textfeldern auslesen Java Basics - Anfänger-Themen 6
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
B .txt. Datei auslesen und bestimmten Wert wiedergeben Java Basics - Anfänger-Themen 5
CptK x wert eines Bildes auslesen Java Basics - Anfänger-Themen 1
T Website auslesen Java Basics - Anfänger-Themen 2
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
L CSV Auslesen Java Basics - Anfänger-Themen 5
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
F Zwischenwerte aus Browser auslesen Java Basics - Anfänger-Themen 19
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
J Hashmap auslesen Java Basics - Anfänger-Themen 7
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Variablen Zahlen aus Strings auslesen Java Basics - Anfänger-Themen 4
J Informationen aus Webseiten auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
dragonfight86 Erste Schritte OpenDocument auslesen Java Basics - Anfänger-Themen 13
I Texte mit Absätzen in Dateien speichern und auslesen Java Basics - Anfänger-Themen 1
W DNS Name auslesen + weitere Anfängerfrage Java Basics - Anfänger-Themen 4
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
Chrizzey45 Calc-Dokument in Java auslesen? Java Basics - Anfänger-Themen 2
B Datei auslesen und 2D-Array anlegen Java Basics - Anfänger-Themen 1
B Key auslesen/ausgeben innerhalb von foreach() Java Basics - Anfänger-Themen 5
M Eigenschaften einer Datei auslesen Java Basics - Anfänger-Themen 5
M Textarea auslesen und beschreiben Java Basics - Anfänger-Themen 8
JokerBlacky Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4
Y Bildschirmauflösung auslesen Java Basics - Anfänger-Themen 4
S for schleife auslesen Java Basics - Anfänger-Themen 4
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
Voreck Array aus txt datei auslesen Java Basics - Anfänger-Themen 2
N JFreeChart --> TimeSeries auslesen Java Basics - Anfänger-Themen 9
OlafHD Datei Auslesen Java Basics - Anfänger-Themen 6
M Metadaten OpenOffice mit Java auslesen Java Basics - Anfänger-Themen 9
J OpenOffice Dokumentenvariable mit Java auslesen Java Basics - Anfänger-Themen 1
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
T Combobox Wert auslesen und damit weiterrechnen Java Basics - Anfänger-Themen 6
J Datei auslesen klappt nicht Java Basics - Anfänger-Themen 4
D String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 5
Viktim Website auslesen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben