Inhalt eines Arrays

  • Themenstarter Themenstarter Mister XY Unbekannt
  • Beginndatum Beginndatum
Status
Nicht offen für weitere Antworten.
M

Mister XY Unbekannt

Gast
Hallo,
kann man den Inhalt eines Arrays von einer Methode wie JTable.getSelectedColumns auf ein Element, also eine Spalte, überprüfen wie man das mit dem instanceof Operator bei AWT Komponenten macht? Für Hilfe Danke ich
 
nein, da die methode einen int[] zurückliefert, also kein Objekt array. Elemente darin sind ints !
 
Wie kann man mit dem ActionListener eines Buttons bei Aufruf den Text von einer JTable
mit der setText Methode des TextFields ändern? Folgender ActionListener funktioniert bei
mir nicht, der Fehler liegt daran das die Methode setText und damit auch das TextField
innerhalb des listeners nicht vom Programm erkannt werden

Code:
public void actionPerformed(ActionEvent e)
{
String sqlabfrage = "";
Object quelle = e.getSource();

    if(quelle instanceof Button)
    {
    	if(e.getActionCommand().equals("Anlegen"))
    	{
    	if(table.getSelectedRow() != -1 & table.getSelectedColumn() != -1)
		{
			if(table.getSelectedColumn() == 0)
			{
			id.setText(table.getValueAt(table.getSelectedRow(),0)); 	
			} 
			else if(table.getSelectedColumn() == 1)
		       	 {
		       	 name.setText(table.getValueAt(table.getSelectedRow(),1));	
		         } 
		         else if(table.getSelectedColumn() == 2)
	                  {
	                  dauer.setText(table.getValueAt(table.getSelectedRow(),2));	
	                  } 
	                  else if(table.getSelectedColumn() == 3)
	             {
	             alter.setText(table.getValueAt(table.getSelectedRow(),3));	
	             }			
	     }
		System.out.println("ButtonAction: "+e.getActionCommand());
		}
			else if(e.getActionCommand().equals("Ändern"))
			{	
    	    		System.out.println("ButtonAction: "+e.getActionCommand());
    		}
    			else if(e.getActionCommand().equals("Löschen"))
    			{
    		    	System.out.println("ButtonAction: "+e.getActionCommand());
    			}
    		}	
    }
 
sind die variablen auch Instanz bzw. Klassenvariablen bzw. was ist das Problem - passiert nichts oder meldet er einen fehler ?

Kann es sein, dass du Swing und AWT miteinander verwendest. Da du "Button" hast aber Tables nur in Swing gibt.... ich würde davon abraten, mach lieber dann alles in Swing
 
Ändere mal die Zeile...
Code:
if(table.getSelectedRow() != -1 & table.getSelectedColumn() != -1)
...in...
Code:
if(table.getSelectedRow() != -1 && table.getSelectedColumn() != -1)
wenn das nicht geht, dann eben in...
Code:
if((table.getSelectedRow() != -1) && (table.getSelectedColumn() != -1))
 
Ja Die Variablen sind Klassenvariablen danke roar 🙂
der Compiler meldet den Fehler cannot resolve symbol method setText (java.lang.Object)
 
nein das wars nicht
wie ist das bei der JTable Methode setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

was ist wenn ich setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION); verwende
kann das der fehler sein?
 
Eine setText()-Methode erwartet typischer Weise Text.
Code:
setText(String str)
Oder wenn Du weißt, dass in den Zellen Text enthalten ist, kannst Du auch casten.
Code:
setText((String)java.lang.Object)
 
den bekommt man doch mit table.getValueAt(table.getSelectedRow(),2);

JTable getText in selektierter Zeile in selektierter Spalte

dies hier ist zb die dritte selektierte Spalte darum wird sie mit der setText() Methode in das Textfeld dauer geschrieben

also hier der ganze Aufruf
dauer.setText(table.getValueAt(table.getSelectedRow(),2));
 
Aus den Tabellenzellen empfängst Du nur Typen von java.lang.Object.
Also musst Du sie auf den gewünschten Typ casten.
Das kannst Du nachvollziehen, wenn Du Dir mal die API-Dokumentation dazu anschaust.
Code:
dauer.setText((String)table.getValueAt(table.getSelectedRow(),2));

L-ectron-X
 
Weiß jemand wie man Text von einer JTable aus SWING bei einem
Buttonklick in ein TextField aus java AWT schreibt?
 
Danke also mit Type Casts (String)(Methode java.lang.Object)
Gruss Mister XY Unbekannt
 
Ich würde aber den explizien Cast nur machen wenn du 100% sicher bist, dass es nur String Objekte sind.
Mit getValueAt(row,col).toString() würdest du dann sicherer fahren....
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben