1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

JTable: Zeilen vertauschen

  • PWL
  • 4. Juli 2008 um 18:42
  • Unerledigt
  • PWL
    5
    PWL
    Mitglied
    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
    14
    java-girl
    Mitglied
    Reaktionen
    7
    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.

    There's no better place than 127.0.0.1!

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

  • phudy
    10
    phudy
    Mitglied
    Reaktionen
    12
    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.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung