ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
699
699
EMPFEHLEN
-
Hi Leute,
hab da ein kleines Problem und ich komme absolut nicht dahinter O.o.
Also, ich hab ein iFrame mit einer Tabelle. Soweit, sogut, funktioniert auch alles. Wenn ich jetzt aber auch noch eine JScrollPane haben möchte,
hab ich nur noch eine Zeile in der Tabelle der Rest verschwindet.
Bitte um Hilfe
http://img248.imageshack.us/i/ohnescrollpane.jpg/
http://img245.imageshack.us/i/mitscrollpane.jpg/
-
11.05.10 13:35 #2
- Registriert seit
- Sep 2008
- Ort
- Osnabrück (Niedersachsen)
- Beiträge
- 244
Hallo,
ich denke das wird nur was mit Code.
Bitte Code- oder Java-Tags benutzen
GrüßeGeändert von FrankBooth (11.05.10 um 13:41 Uhr)
Programmieren ist ein Wettbewerb zwischen dem Programmierer,
die Software idiotensicher zu machen, und dem Universum, das versucht,
größere Idioten zu produzieren. Bis jetzt gewinnt das Universum.
-
Das wäre die Tabelle.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
public class PlaylistiFrame extends JInternalFrame { JPopupMenu pum; JMenuItem play; JTable playlist; TableModel model; DefaultTableCellRenderer dcr; int nprow; int b; final String[] columnNames = {"Nr","Titel", "Zeit"}; public PlaylistiFrame() { setSize(500, 700); setVisible(true); setLocation(500, 5); InitPopUpMenu(); List(); } public void List() { if (playlist != null) remove(playlist); model = new DefaultTableModel(Main.pl.getPlaylist(), columnNames); playlist = new JTable(model){ public boolean isCellEditable(int x, int y) { return false; } public Component prepareRenderer(TableCellRenderer renderer, int index_row, int index_col) { Component comp = super.prepareRenderer(renderer, index_row, index_col); if (index_row == nprow) { comp.setForeground(Color.RED); } else { if (isCellSelected(index_row, index_col) == true) { comp.setForeground(Color.WHITE); } else comp.setForeground(Color.BLACK); } return comp; } }; JScrollPane scp = new JScrollPane(playlist); playlist.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); playlist.addMouseListener(Main.ifplml); add(scp); }
Und das die Daten.
pl[][] ist das Objekt welches übergeben wird.Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
public void updatePlaylist(Object[] info) { int z = 1; Object[][] fpl = new Object[i][4]; if (this.fpl != null) { for (int x = this.fpl.length; x > 0; x--) { fpl[x-1][0] = this.fpl[x-1][0]; fpl[x-1][1] = this.fpl[x-1][1]; fpl[x-1][2] = this.fpl[x-1][2]; fpl[x-1][3] = this.fpl[x-1][3]; } } fpl[i-1][0] = info[0]; fpl[i-1][1] = info[1]; fpl[i-1][2] = info[2]; fpl[i-1][3] = info[3]; pl = new Object[i][3]; for (int x = 0; x != fpl.length; x++) { pl[x][0] = z; pl[x][1] = fpl[x][0]; pl[x][2] = fpl[x][1]; z++; } }Geändert von Lantis (11.05.10 um 13:56 Uhr)
-
14.05.10 13:00 #4Code java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
public void updatePlaylist(Object[] info) { int z = 1; Object[][] fpl = new Object[i][4]; if (this.fpl != null) { for (int x = this.fpl.length; x > 0; x--) { fpl[x-1][0] = this.fpl[x-1][0]; fpl[x-1][1] = this.fpl[x-1][1]; fpl[x-1][2] = this.fpl[x-1][2]; fpl[x-1][3] = this.fpl[x-1][3]; } } fpl[i-1][0] = info[0]; fpl[i-1][1] = info[1]; fpl[i-1][2] = info[2]; fpl[i-1][3] = info[3]; pl = new Object[i][3]; for (int x = 0; x != fpl.length; x++) { pl[x][0] = z; pl[x][1] = fpl[x][0]; pl[x][2] = fpl[x][1]; z++; } }
Das wirkt auf mich sehr kompliziert und kompliziert heißt fehleranfällig! Hast du es schonmal mit dynamischen Arrays versucht? Ein Beispiel hierfür wäre ArrayList (http://java.sun.com/j2se/1.4.2/docs/...ArrayList.html).
Dieser ArrayList fügst du dann einfach Object[] info hinzu.Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.
-
Hi,
hab den Fehler schon gefunden. Das mit den Arrays hab ich mittlerweile auch vereinfacht, hatte ich im ersten Moment nicht erkannt gehabt!
Also Fehler war:
Die Zeile refresht sozusagen den JTable, nur wenn ich den JTable jetzt nicht mehr direkt einbette sondern über die JScrollPane muss des auch folglich so heißen:Code :1
if (playlist != null) remove(playlist);
Code :1
if (playlist != null) remove(scp);
Trotzdem Danke an alle!
Grüße..
Ähnliche Themen
-
JTable/JScrollPane repaint() Problem
Von Tsunamii im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 17.08.10, 15:55 -
JTable auf JScrollPane nicht sichtbar
Von Kamikaze im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 1Letzter Beitrag: 26.06.09, 07:41 -
JTable/JScrollpane automatisch an Fenstergröße anpassen
Von Kalmuecke im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 21.03.08, 15:19 -
JTable mit JScrollPane
Von flashOr im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 4Letzter Beitrag: 21.06.07, 13:01 -
JTable mit JScrollPane
Von zerix im Forum JavaAntworten: 2Letzter Beitrag: 11.10.05, 13:58





Zitieren
Login





