1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

JTable: Zeilen vertauschen

  • PWL
  • 4. Juli 2008 um 18:42
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • PWL
    Punkte
    240
    Beiträge
    31
    • 4. Juli 2008 um 18:42
    • #1

    Hi,

    hab folgendes problem. muss nen musicplayer programmieren und verwalte die playlists mit einer jtable. jetz hab ich nen button mit "move up" und "move down" also er soll quasi n lied nach oben bzw. nach unten verschieben. könnte mir jmd. vl. den quelltext dazu sagen, wäre nett. es wäre auch noch gut wenn die oberste zeile nicht nach oben bzw. die unterste zeile nicht nach unten verschieben könnte. hab hier mal den source code angehängt von der delete-funktion, damit ihr den namen der bezeichner habt.
    danke!!

    Code
    if ((list.get(playlistadm.getSelectedIndex()).playlist.size() > 0) && (tabelle.getSelectedRowCount() > 0)) {
    
        list.get(playlistadm.getSelectedIndex()).playlist.removeElementAt(tabelle.getSelectedRow());
        update();
        }
  • java-girl
    Punkte
    2.037
    Beiträge
    357
    • 4. Juli 2008 um 19:03
    • #2

    Ich würde an deiner Stelle mit einem TableModel arbeiten.
    Schau dir das einmal an, wenn es Probleme gibt, kannst du ja gerne fragen.

    Einmal editiert, zuletzt von java-girl (4. Juli 2008 um 19:05)

  • phudy
    Punkte
    1.087
    Beiträge
    182
    • 4. Juli 2008 um 23:18
    • #3

    das sollte mal als vorlage weiterhelfen:

    Java
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.Arrays;
    import java.util.List;
    
    
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTable;
    import javax.swing.WindowConstants;
    import javax.swing.table.AbstractTableModel;
    
    
    public class JTableZeilenTauschen {
    
    
    	private static class MyTableModel extends AbstractTableModel {
    
    		private List<String> data = Arrays.asList("x1", "x2", "x3", "x4");
    
    		// eine zusatzmethode zum vertauschen
    		public void tauscheZeile() {
    			String tmp = this.data.get(0);
    			this.data.set(0, this.data.get(1));
    			this.data.set(1, tmp);
    			// nicht vergessen dieses ereignis zu feuern -> repaint
    			this.fireTableDataChanged();
    		}
    
    		// folgende 3 methoden muessen implementiert werden
    		public int getColumnCount() {
    			return 1;
    		}
    
    
    		public int getRowCount() {
    			return this.data.size();
    		}
    
    
    		public Object getValueAt(int rowIndex, int columnIndex) {
    			return this.data.get(rowIndex);
    		}
    
    	}
    
    	public static void main(String[] args) {
    
    		final MyTableModel model = new MyTableModel();
    		JTable tbl = new JTable(model);
    
    		JButton btn = new JButton("vertausche ersten zwei zeilen");
    		btn.addActionListener(new ActionListener() {
    			public void actionPerformed(ActionEvent e) {
    				model.tauscheZeile();
    			}
    
    		});
    
    		JPanel p = new JPanel();
    		p.add(btn);
    		p.add(new JScrollPane(tbl));
    
    		JFrame f = new JFrame();
    		f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    		f.getContentPane().add(p);
    		f.pack();
    		f.setVisible(true);
    	}
    
    }
    Alles anzeigen
  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum