Select in JTable

Stephan2009

Aktives Mitglied
Hallo zusammen, ich würde gern wissen wie ich es am besten anstelle das wenn ich eine Zeile im JTable markiere ein bestimmter Inhalt darin gespeichert wird.Das heißt 1) ich markiere die Zeile im JTabel, 2) öffne ein GuiFenster gebe Daten ein und speicher diese in einer Datei. (klappt) nun soll genau an dieser Stelle im Table die Daten angezeigt werden. Wie mach ich das am besten?

Hier mal der Code der JTable
Java:
String[] columnNames = {"Nr.", "Kategorie Fotos" ,"Titel","Autor","Bewertungen" };
            
       	    
	        Object[][] data = {
	        {"", "", "", "", ""},
	        {"", "", "", "", ""},
	        {"", "", "", "", ""},
	        {"", "", "", "", ""},
	        {"", "", "", "", ""},
	        {"", "", "", "", ""},
	        {"", "", "", "", ""},
	        {"", "", "", "", ""},
	        {"", "", "", "", ""},
	        {"", "", "", "", ""}, 
	        };
	        // fehlt ein ActionListener zum Sortieren der Table
	        
	        
	        final JTable table = new JTable(data, columnNames);

Hier der Code um die Table zu markieren :

Java:
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
	        if (ALLOW_ROW_SELECTION) { 
	            ListSelectionModel selectmodel = table.getSelectionModel();
	            selectmodel.addListSelectionListener(new ListSelectionListener() {
	                public void valueChanged(ListSelectionEvent e) {
	                    
	                    if (e.getValueIsAdjusting()) return;

	                    ListSelectionModel listenmodel = (ListSelectionModel)e.getSource();
	                    if (listenmodel.isSelectionEmpty()) {
	                        System.out.println("No rows are selected.");
	                    } else {
	                    	// hier muss meine Ladefunktion hin
	                        int selectedRow = listenmodel.getMinSelectionIndex();
	                        System.out.println("Row " + selectedRow
	                                           + " is now selected.");
	                    }
	                }
	            });
	        } else {
	            table.setRowSelectionAllowed(false);
	        }
 

Jigga

Bekanntes Mitglied
meinst du genau an der markierten stelle angezeigt werden,sprich in der Zeile?
du verwendest ja bestimmt ein TableModel. nach dem speichern der Daten fügst du deinem TableModel einfach einen Eintrag an der gewünschten Stelle hinzug.
 

Stephan2009

Aktives Mitglied
hmm ok ich habe es jetzt so gemacht
Java:
DefaultTableModel model = new DefaultTableModel(data, columnNames);
final JTable table = new JTable(model);

// Methode für TableModel
		public Object GetData(JTable table, int row_index, int col_index){
        	  return table.getModel().setValueAt(aValue, row_index, col_index);
        	  }

Was übergebe ich denn jetzt für aValue ?
 

Wladimir

Mitglied
Der Wert von aValue ersetzt den Wert aus deinem data Array an der entsprechenden Stelle. In deinem Fall wahrscheinlich ein String.
Noch paar nützliche Tipps:
Code:
table.getColumnModel().getSelectionModel().addListSelectionListener(...);
um auch auf Spaltenselektion zu horchen.
Code:
table.getSelectedRow() und table.getSelectedColumn()
liefern die jeweilige selektierte Zeile oder Spalte
 

Jigga

Bekanntes Mitglied
ich glaube du musst dir mal etwas genauer das Prinzip des TableModel Prinzips anschauen. Das TableModel ist sozusagen dein "TabellenDatenVerwalter". Immer wenn du etwas an den Daten deiner Daten änderst,geht dies über das TableModel. Die JTable bezieht sich nur auf das TableModel um die Daten darzustellen,mehr nicht.
Ich hab mal mein TableModel etwas abgespeckt hier reingestellt damit dir das ganze etwas klarer wird.
Java:
import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;

import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.TableModel;



public class HistoryTableModel implements TableModel {


	public void addHistoryEntry(HistoryEntry historyEntry) {
		//Einen Eintrag zur ArrayList/Datenbank hinzufügen und anzeigen lassen

		//listener bescheid sagen,dass sich etwas getan hat
		TableModelEvent e = new TableModelEvent(this, index, index,
				TableModelEvent.ALL_COLUMNS, TableModelEvent.INSERT);
		for (int i = 0, n = listeners.size(); i < n; i++) {
			((TableModelListener) listeners.get(i)).tableChanged(e);
		}
		}
	}

	
	public void updateHistory(HistoryEntry entry, String banDuration) {
		//hier werden einträge abgeändert und angezeigt
		TableModelEvent e = new TableModelEvent(this,
				TableModelEvent.UPDATE, TableModelEvent.UPDATE);
		for (int i = 0, n = listeners.size(); i < n; i++) {
			((TableModelListener) listeners.get(i)).tableChanged(e);
		}

	}




	public void deleteExpired() {
		//Einträge werden aus ArrayList/Datenbak gelöscht und dem JTable bescheid gesagt
			TableModelEvent e = new TableModelEvent(this,
					TableModelEvent.DELETE, TableModelEvent.DELETE);
			for (int i = 0, n = listeners.size(); i < n; i++) {
				((TableModelListener) listeners.get(i)).tableChanged(e);
			}
		} catch (ParseException e1) {
			e1.printStackTrace();
		}
	}


	// Die Anzahl Columns
	public int getColumnCount() {
		return 6;
	}

	// Die Anzahl Vehikel
	public int getRowCount() {
		return historyList.size();
	}

	// Die Titel der einzelnen Columns
	public String getColumnName(int column) {
		switch (column) {
		case 0:
			return "Player Name";
		case 1:
			return "Forum Section";
		.
		.
		.
		case 5:
			return "Forum Link";
		default:
			return null;
		}
	}

	// Der Wert der Zelle (rowIndex, columnIndex)
	public Object getValueAt(int rowIndex, int columnIndex) {
		HistoryEntry entry = (HistoryEntry) historyList.get(rowIndex);
		switch (columnIndex) {
		case 0:
			return entry.getPlayerName();
		.
		.
		.
		.
		case 5:
			return entry.getForumLink();
		default:
			return null;
		}
	}

	// Eine Angabe, welchen Typ von Objekten in den Columns angezeigt werden
	// soll
	public Class<?> getColumnClass(int columnIndex) {
		return String.class;
	}

	public void addTableModelListener(TableModelListener l) {
		listeners.add(l);
	}

	public void removeTableModelListener(TableModelListener l) {
		listeners.remove(l);
	}

	public boolean isCellEditable(int rowIndex, int columnIndex) {
		return false;
	}

	public void setValueAt(Object aValue, int rowIndex, int columnIndex) {
		// hier wäre dann das einfügen deiner Daten
	}


}
 

Stephan2009

Aktives Mitglied
Danke für die guten Tipps werde es mal ausprobieren, aber im moment hab ich schwierigkeiten mit dem SelectionListener es ist so das ich hier einen Button habe

Java:
 button2.addActionListener(new ActionListener(){
		    	public void actionPerformed(ActionEvent e) {
		    	Neue_Bewertung bewertung=new Neue_Bewertung();	
		        bewertung.setVisible(true);
		        bewertung.pack();}

Wenn dieser gedrückt wird öffnet sich eine neues Fenster. Nun will ich es so haben das das Fenster sich nur öffnen soll wenn eine Zeile im JTable markiert ist. Dazu hab ich mir eine neue Klasse für den Listener gemacht und zwar

Java:
 // Klasse SelectionListener
	    public class SelectionListener implements ListSelectionListener {
           JTable table;
         
	     SelectionListener(JTable table) {
            this.table = table;
		}
		
		public void valueChanged(ListSelectionEvent e) {
           
            if (e.getSource() == table.getSelectionModel()
                  && table.getRowSelectionAllowed()) {
            	ListSelectionModel listenmodel = (ListSelectionModel)e.getSource();
                if (listenmodel.isSelectionEmpty()) {
                	System.out.println("Bitte Zeile auswählen");
                }
            }}                   	    
	    }

In der Klasse wo der Button ist also oben habe ich dann den Zugriff auf den Listener so gestaltet:

Java:
SelectionListener listener = new SelectionListener(table);
	        table.getSelectionModel().addListSelectionListener(listener);
	        table.getColumnModel().getSelectionModel()
	            .addListSelectionListener(listener);

Finde den Fehler nicht im Listener.
 

Michael...

Top Contributor
Wenn dieser gedrückt wird öffnet sich eine neues Fenster. Nun will ich es so haben das das Fenster sich nur öffnen soll wenn eine Zeile im JTable markiert ist. Dazu hab ich mir eine neue Klasse für den Listener gemacht und zwar.
Ich vermute Du unterliegst hier einem Denkfehler. Der SelectionListener informiert alle registrierten Interessenten darüber, dass dich gerade die Selektion geändert hat.
Du willt aber einfach nur überprüfen ob aktuell eine Selektion in der JTable vorliegt. Dazu braucht man keinen SelectionListener. Herfür liefert JTable selbst bereits weiter oben genannte Methoden.
 

Stephan2009

Aktives Mitglied
Ein anderes Problem womit ich gerade kämpfe ist das wenn die eine Zeile Selektiert ist eine Fallunterscheidung getroffen werden soll nachdem ein neues Fenster geöffnet worden das heißt das Fenster öffnet sich und dann muss eine bestimmte Datei geöffnet werden ( Datei 1, Datei 2 ...) Der Table übergebe ich

Java:
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
	        table.setRowSelectionAllowed(true);

damit eine gesamte Zeile markiert wird. In der Klasse wo sich das Fenster erzeugt wird habe ich eine Referenz auf meine Table udn übergebe

Java:
int wert=bewertungen.table.getSelectedRow();
    if(wert==1){
    
    area.read(new FileReader(file), null);
    area1.setToolTipText("Hier werden abgegebene Bewertungen angezeigt");
    area1.read(new FileReader(file1), null);
    area1.setBorder(BorderFactory.createLineBorder(Color.black, 1));
    area.setToolTipText("Hier werden abgegebene Feedbacks angezeigt");
    }

ich gehe davon aus das wenn eine komplette Zeilte markiert ist ich nur getSelectedRow abfragen muss. Es tut sich aber nix was mache ich falsch?
 

Jigga

Bekanntes Mitglied
wert repräsentiert den zeilenindex in deinem fall. sprich wenn zeile nummer 2 markiert ist,dann geht er in die if anweisung rein,sonst nicht.
 

Stephan2009

Aktives Mitglied
Die Daten soll der Table auch noch nicht übergeben werden, es geht nur darum das wenn die gesamte Zeile 1 markiert ist die Datei 1 in meinem öffnenden Fenster geladen wird , wenn die gesamte Zeile 2 markiert ist in meinem Fenster die Datei 2 aufgerufen wird...

Genau du sagst es
 

Stephan2009

Aktives Mitglied
Java:
// Fallunterscheidung welche Liste geöffnet wird
    
    int wert=bewertungen.table.getSelectedRowCount();
    if(wert==1){
    
    area.read(new FileReader(file),null);
    area1.setToolTipText("Hier werden abgegebene Bewertungen angezeigt");
    area1.read(new FileReader(file1), null);
    area1.setBorder(BorderFactory.createLineBorder(Color.black, 1));
    area.setToolTipText("Hier werden abgegebene Feedbacks angezeigt");
    }
    
    if(wert==2){
    	area.read(new FileReader(file2), null);
        area1.setToolTipText("Hier werden abgegebene Bewertungen angezeigt");
        area1.read(new FileReader(file3), null);
        area1.setBorder(BorderFactory.createLineBorder(Color.black, 1));
        area.setToolTipText("Hier werden abgegebene Feedbacks angezeigt");	
    }
    
    if(wert==3){
    	area.read(new FileReader(file4), null);
        area1.setToolTipText("Hier werden abgegebene Bewertungen angezeigt");
        area1.read(new FileReader(file5), null);
        area1.setBorder(BorderFactory.createLineBorder(Color.black, 1));
        area.setToolTipText("Hier werden abgegebene Feedbacks angezeigt");	
    }
 

Jigga

Bekanntes Mitglied
Java:
int wert=bewertungen.table.getSelectedRow();
switch (wert) {
case 0:
//lade datei 1
break;
case 1:
//lade datei 2
break;
default:
}
 

Michael...

Top Contributor
Nur so nebenbei: Das sieht jetzt nicht nach OOP aus.
Java:
int wert=bewertungen.table.getSelectedRowCount();

Reicht es nicht einfach aus den Index der selektierten Zeile zu übergeben? Muss der Dialog die JTable kennen?
Schon man mit Arrays oder Listen gearbeitet? Dann könnte man sich eventuell die Fallunterscheidung sparen.
 

Jigga

Bekanntes Mitglied
mir fällt gerade auf: gibt
Java:
bewertungen.table.getSelectedRowCount();
nicht die Anzahl der selektierten Zeilen wieder?demnach müsste das doch immer 1 sein,da du ja zuvor singleselection gesetzt hast?bin jetzt davon ausgegangen,dass du von einer bestimmten zeile sprichst,also
Java:
getSelectedRow()
 

Jigga

Bekanntes Mitglied
er meinte,dass das ganze nicht sehr elegant ist und nicht wirklich objektorientiert...
gib dir probehalber den "wert" davor aus?
 

Stephan2009

Aktives Mitglied
Zum Verständis ist es so das ich ein Fenster Bewertungen habe in dem Bilder bewertet werden sollen. Dabei gibt es zwei Buttons einer davon ist der Button "Details" anzeigen. Die vorgehensweise die ich mir dachte ist, markiere die erste Zeile , drücke den Knopf Details , dieser zeigt mir dann die entsprechende Liste aller abgegebenen Bewertungen auf zu der selektierten Zeile im JTable. Da die vorher abgegebenen Bewertungen in einer TXT gespeichert werden soll eine Fallunterscheidung getroffen werden welche Liste mir angezeigt wird nachdem ich den Knopf Details gedrückt habe. Puh :D
 

Jigga

Bekanntes Mitglied
ok moment mal.sehe ich das richtig,dass du dann vorhast (mal angenommen du hast 20 bilder,also auch 20 dateien mit bewertungen) 20 fallunterscheidung zu schreiben?!
mal ein vorschlag:
konstruktor für deine "Bilder" mit entsprechenden Details wie: name, anzahl bewertungen, bilderPfad, etc..
In deiner JTable zeigst du nur die Infos an,die gesehen werden sollen.
bildername ist hier zB wichtig,wenn jetzt ein datensatz selektiert ist, holst du dir den bildernamen raus mit getValueAt() und rufst die entsprechende Datei auf.

Java:
String bilderName = table.getValueAt(selektiertzeile, spalteDesBildNames);
//txt.datei laden mit dem namen des Bildes
natürlich sollten dann die textdateien genau so heißen,wie die bilder...

Aber auch dies ist imho nicht wirklich elegant.Besser wäre es beispielsweise die Bewertungen in einer Datei zu haben "bewertungen.txt", die dann beispielsweise so aufgebaut ist:
bildername;bewertetVon;note;datum;bewertetVon2;note2;datum2;....
bildername2;bewertetVon.....
bildername3....

Jede Zeile der Textdatei würde einen String repräsentieren mit allen infos des jeweiligen Bildes.
Beim Programmstart liest du die Datei einfach aus,erstellt dir objekte und speicherst diese in einer ArrayList. Bei klicken auf details kannst du dann direkt die Infos holen ohne irgendwelche Dateien zu laden...
Ansonstne: evtl mal an mini datenbank gedacht?kannst dir eine Datei erstellen,die eine einfach DB repräsentiert (SQLite beispielsweise),das wäre dann sogar um einiges einfacher/sichere, als mit einer textdatei...
 

Michael...

Top Contributor
Da die vorher abgegebenen Bewertungen in einer TXT gespeichert werden soll eine Fallunterscheidung getroffen werden welche Liste mir angezeigt wird nachdem ich den Knopf Details gedrückt habe. Puh :D
Heißt in Abhängigkeit des in der Tabelle selektierten Eintrages soll die passende Liste angezeigt werden?
Die Notwendigkeit einer Fallunterscheidung sehe ich hier nicht. Wenn die Berwertungslisten in einer List/Array mit der gleichen Reihenfolge wie die "Bilder" in der Tabelle verwaltest, benötigst Du ja nur den Row Index aus der JTable und kannst damit direkt auf die passende Bewertungsliste in der List/Array zugreifen.

Mit einem geeigneten Daten/TableModel wäre das vermutlich noch komfortabler, könnte aber zu komplex für Dich werden.
 

Stephan2009

Aktives Mitglied
danke werd ich mir Gedanken drüber machen allerdings ist es so das die Bilder auch nicht auf der Festplatte zur Verfügung stehen sondern als REST Aufruf aus dem Netz geladen werden
 

Jigga

Bekanntes Mitglied
danke werd ich mir Gedanken drüber machen allerdings ist es so das die Bilder auch nicht auf der Festplatte zur Verfügung stehen sondern als REST Aufruf aus dem Netz geladen werden

könntest du mir evtl per mail schreiben, wie genau du diese REST geschichte realisiert hast?muss mich da gerade etwas mit rumschlagen...

@topic: wie und wann erstellst du dir deine Tabellen-Einträge?
 

Stephan2009

Aktives Mitglied
Das mit dem Rest aufruf ist eigentlich schnell gesagt : ich baue mir eine URL Verbindung auf schreibe mir die XML Dateien in eine Datei, durchlaufe die XML Datei, baue mir die Strings zusammen von Beispielsweise 20 Fotos und speicher mir dies in einer ArrayList und diese sollen eben in der JTable angezeigt werden und im nachhinein bewertet
 

Jigga

Bekanntes Mitglied
weißt du wie es da von der server-seite her ausschaut?wenn es sich um PHP handelt würde ich gerne mal in die entsprechende klasse schauen.

@ topic: in dem kontext, wo du dir die strings usw. der fotos ausliest,kannst du dir davon ja objekte erstellen.würde das ganze sehr vereinfachen denke ich.
 

Stephan2009

Aktives Mitglied
Hallo zusammen ich habe es fast soweit, ich mache es jetzt so das ich nach dem ActionListener die Felder einlese und mir daraus ein Objekt erzeuge, mein einziges Umsetzungsproblem ist es nur noch wie erzeug ich mein Objekt mit dem Bild? Hier mal mein Code

Java:
button.addActionListener(new ActionListener(){
	    	public void actionPerformed(ActionEvent e) {
	    		
	    		if(area.getText().equals("")){
                	area.setForeground(Color.red);
                	area.setText("Bitte Feedback eingeben!!");
        }
                if(field1.getText().equals("")){
                	field1.setForeground(Color.red);
                	field1.setText("Bitte Titel eingeben!!");
                }
                if(field.getText().equals("")){
                	field.setForeground(Color.red);
                	field.setText("Bitte Metainformationen eingeben!!");
                }
                if(field3.getText().equals("")){
                	field3.setForeground(Color.red);
                	field3.setText("Bitte Autor eingeben!!");
                }
                if(bewertungsfeld.getText().equals("")){
                	bewertungsfeld.setForeground(Color.red);
                	bewertungsfeld.setText("Bitte Bewertung abgeben!");
                }
                else{
                	
	    			String Titel=field.getText();
	    			String Meta=field1.getText();
	    			String Kategorie=field2.getText();
	    			String Autor=field3.getText();
	    			String Bewertung=bewertungsfeld.getText();
	    			String Text=area.getText();
	    			
	    			List<URL> liste=photos.getListe();
	    			
	    			for(int i=0;i<liste.size();i++){
	    			String fotoliste=liste.get(i).toString(); // URL als String
	    			}
	    			
	    			Photo foto=new Photo();
	    			
	    			foto.setFotoURL(fotoliste);
	    			foto.setTitel(Titel);
	    			foto.setMeta(Meta);
	    			foto.setKategorie(Kategorie);
	    			foto.setAutor(Autor);
	    			foto.setBewertung(Bewertung);
	    			foto.setText(Text);
	    			
	    			photoobjekte.add(foto);
	    		}}}
	    	);
Die Fotos liegen in der "liste" mit toString kann ich daraus ja Strings erzeugen aber das Problemist noch wie mache ich es am besten das ich genau das Foto mit dem Objekt zusammenpacke ich muss ja irgendwie sagen das ich Zeile 1 Bild 1 ist . Ich packe die Bilder mit dem CellRenderer per Label auf die JTable, habe jetzt aber zusätzlich den ImageIcons eine Description vergeben.

Als weiteren Versuch wollte ich so vorgehen weiß aber nicht ob es so geht

Java:
List<URL> liste=photos.getListe();
	    			//int wert=bewertungen.table.getRowCount();
	    			//String fotoliste=liste.get(i).toString(); // URL als String
	    			for(int wert1=bewertungen.table.getRowCount();wert1<=0;wert1--){
	    			Object obj = bewertungen.table.getValueAt(wert1, 1);
	    			String zelle=obj.toString();
	    			if(zelle.equals("Bild1")){	    			
	    					
	    			Photo foto=new Photo();
	    			foto.setFotoURL((String) obj);
	    			foto.setTitel(Titel);
	    			foto.setMeta(Meta);
	    			foto.setKategorie(Kategorie);
	    			foto.setAutor(Autor);
	    			foto.setBewertung(Bewertung);
	    			foto.setText(Text);
	    			
	    			ArrayList array=foto.getArray();
	    			array.add(foto);
	    			}
	    		}
 
Zuletzt bearbeitet:

Michael...

Top Contributor
[JAVA=35] for(int i=0;i<liste.size();i++){
String fotoliste=liste.get(i).toString(); // URL als String
}

Photo foto=new Photo();

foto.setFotoURL(fotoliste);[/code]
Warum hier die Schleife?
Dir ist bewusst, dass die String-Variable fotoliste in Zeile 36 nur in der Schleife/Zeile gültig ist und nichts mit der Variable fotoliste in Zeile 41 zu tun hat - falls diese überhaupt exisitiert.
Ist jetzt nicht böse gemeint: Dem Code nach zu urteilen hast Du kaum Erfahrung in der (Java)Programmierung. Eventuell solltest Du Dich noch mal mit den Grundlagen auseinandersetzen.
jemand eine Idee für mich?
Bei welchem Problem?
 

Stephan2009

Aktives Mitglied
Ja das ist mich schon bewusst , der Code mit der Schleife war nicht mehr gültig hab ich vergessen auszukommentieren. Es ist ja so das ich die Felder alle auslesen und ein Objekt erzeugen möchte das ist ja nicht schwer. Nun ist aber mein Problem wie ich es am besten mache das ich dem Objekt meine Foto mit übergeben kann, weil ich ja in der JTable immer eine Zeile Selektiere.

Es ist ja so das meine Bilder über den CellRenderer in meine JTable erzeugt werden. (ImageIcon ans Label)
 
Zuletzt bearbeitet:

Jigga

Bekanntes Mitglied
warum erstellst du nicht davor objekte?sprich bevor du sie in die jtable lädst?wäre doch viel leichter (und sinnvoller)?
ansonsten: dein Bild wird ja als Pfad in einem String repräsentiert:
Java:
String bildPfad = "pfad an dieser stelle holen/laden/wie auch immer du das mit dem REST machst"
 

Stephan2009

Aktives Mitglied
Ja es ist so das meine Bilder ein String URL Repräsentation haben die bei mir in einer ArrayListe gespeichert werden. Danach werden diese aus der Liste herausgeholt , ein ImageIcon erzeugt, diese auf ein Label gesetzt und danach in die JTable gesetzt.

Ich möchte es ja gerne so haben das wenn ich eine neue Bewertung abgebe alle Felder aus der Gui auslese und dann mit diesen und dem Foto ein Objekt bilden kann. Problem : kann ich mir mit getValueat den Wert auslesen aus der JTable um jeder Bewertung das Foto zuordnen zu können,
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Wenn ich mich recht erinnere bekommst Du die URLs aus einem XML.
Beim Auslwerten dieses XML erzeugst Du für jede URL ein "Photo" Objekt, das neben div. anderen Attributen auch eine Referenz auf das mittels URL erzeugte ImageIcon hält. Diese "Photo" Objekt packst Du in eine Liste, die an Dein TableModel übergeben wird. Das TableModel noch ein bisschen anpassen und fertig ist das ganze...
 

Jigga

Bekanntes Mitglied
ich sehe da irgendwie dein problem nicht.

wie mein vorrädner bereits gesagt hat,sobald du die bilder lädst erstellst du dir objekte:
Java:
Foto bild = new Foto("fotoLink oder Pfad", "fotoName", "und was du sonst noch brauchst");
Diese Objekte übergibst du deinem TableModel,welches sie in einer ArrayList speichert. Bei einem Klick auf den Button,oder wo auch immer, kannst du einfach das Objekt aus der Tabelle hole mit dem TableModel und mit diesem dann arbeiten.

Java:
fotoObjekt.getDeinGewünschstesAttribut();

EDIT: ich glaube du versuchst hier gerade deinen Objekten die BildDatei ansich zu übergeben.warum?
das tust du ja auch sonst nicht,warum willst du dies dann hier tun?ein verweis auf die bilddatei ist doch genug?
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Swing JTable-Event für einen Select?? AWT, Swing, JavaFX & SWT 3
S Bei Select in JTable Button aktivieren AWT, Swing, JavaFX & SWT 6
G Suche Tutorial zum Thema jdbc/SQL/Select/JTable AWT, Swing, JavaFX & SWT 9
T SWT TreeViewer select columns AWT, Swing, JavaFX & SWT 2
K InnerFrame Select-Ebene verändern AWT, Swing, JavaFX & SWT 7
M Select cell AWT, Swing, JavaFX & SWT 3
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
R Swing JTable und Spaltenausrichtung AWT, Swing, JavaFX & SWT 8
G JTable füllen AWT, Swing, JavaFX & SWT 1
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
J Datensatz in jTable ausgeben AWT, Swing, JavaFX & SWT 3
M Swing Automatischer Editorstart in JTable-Zelle AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
J JTable: Eingabe in Tabellenzelle korrigieren AWT, Swing, JavaFX & SWT 4
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
T Swing JTable valueChanged datensatz löschen AWT, Swing, JavaFX & SWT 1
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
S Jtable defaultRenderer wohin damit ? AWT, Swing, JavaFX & SWT 23
T Swing JTable / FocusListener AWT, Swing, JavaFX & SWT 0
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
J addRow bei JTable AWT, Swing, JavaFX & SWT 6
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
Meeresgott Swing JTable AWT, Swing, JavaFX & SWT 4
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
B Swing JTable sortieren AWT, Swing, JavaFX & SWT 2
T Swing JTable auslesen und befüllen AWT, Swing, JavaFX & SWT 8
B JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
J JTable und Suchlogik AWT, Swing, JavaFX & SWT 4
Viktim Swing JTable mit Tab verlassen AWT, Swing, JavaFX & SWT 1
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
Viktim Swing JTable Mit Tab druch Zeilen Wechseln AWT, Swing, JavaFX & SWT 5
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
S Swing JTable - Einzelne Rows einfärben AWT, Swing, JavaFX & SWT 11
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
P JTable - bei Eingabe Selektion AWT, Swing, JavaFX & SWT 0
P Fokus auf Zelle in JTable AWT, Swing, JavaFX & SWT 1
S Swing Deselektion in JTable verhindern AWT, Swing, JavaFX & SWT 0
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
N Swing Print JTable mit AbstractTableModel AWT, Swing, JavaFX & SWT 1
Ananaskirsche Swing jTable Reihen zuviel eingefügt AWT, Swing, JavaFX & SWT 12
P im JTable die Schriftfarbe ändern AWT, Swing, JavaFX & SWT 19
T Swing JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Dreiecke in bestimmte Zellen einer JTable AWT, Swing, JavaFX & SWT 9
LexeB4F Zelle in JTable gezielt einfärben AWT, Swing, JavaFX & SWT 4
LexeB4F JTable mehrere Zelle selektieren und inhalte Löschen.. Ideen gesucht AWT, Swing, JavaFX & SWT 1
D Swing JTable Renderer Grafikfehler AWT, Swing, JavaFX & SWT 0
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
M Swing JTable GroupableHeader Background Color AWT, Swing, JavaFX & SWT 4
K Swing JTable updaten AWT, Swing, JavaFX & SWT 9
thet1983 Swing MySQL >> JTable AWT, Swing, JavaFX & SWT 5
J JTable bounds ändern durch resizing des Fensters AWT, Swing, JavaFX & SWT 9
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
O JTable linksbündig drucken (nicht der Zelleninhalt) AWT, Swing, JavaFX & SWT 2
Crazynet xls Datei in JTable AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben