tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
699
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Lantis Lantis ist offline Grünschnabel
    Registriert seit
    May 2010
    Beiträge
    3
    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/
     

  2. #2
    FrankBooth FrankBooth ist offline Mitglied Gold
    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üße
    Geä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.

  3. #3
    Lantis Lantis ist offline Grünschnabel
    Registriert seit
    May 2010
    Beiträge
    3
    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.
    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++;
            }
        }
    pl[][] ist das Objekt welches übergeben wird.
    Geändert von Lantis (11.05.10 um 13:56 Uhr)
     

  4. #4
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Code 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.

  5. #5
    Lantis Lantis ist offline Grünschnabel
    Registriert seit
    May 2010
    Beiträge
    3
    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:
    Code :
    1
    
    if (playlist != null) remove(playlist);
    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(scp);

    Trotzdem Danke an alle!

    Grüße..
     

Ähnliche Themen

  1. JTable/JScrollPane repaint() Problem
    Von Tsunamii im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 17.08.10, 15:55
  2. JTable auf JScrollPane nicht sichtbar
    Von Kamikaze im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 26.06.09, 07:41
  3. JTable/JScrollpane automatisch an Fenstergröße anpassen
    Von Kalmuecke im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 21.03.08, 15:19
  4. JTable mit JScrollPane
    Von flashOr im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 21.06.07, 13:01
  5. JTable mit JScrollPane
    Von zerix im Forum Java
    Antworten: 2
    Letzter Beitrag: 11.10.05, 13:58

Stichworte