tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
8
ZUGRIFFE
502
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    javama javama ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    102
    hallo zusammen,
    ich habe eine JTable besteht aus 4 spalten , die die Daten einer Datenbank tabelle anzeigen, alles läuft gut aber die 4. spalte sollte in jeder zelle ein text anzeigen, das problem der ganze Text wir in einer Zeile angezeigt, hat jemnand eine Idee wie man den Text mit zeilenumbrüche anzeigen kann.

    ich danke euch im voraus
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Hi,
    das sollte dir weiterhelfen könnne.
    http://www.esus.com/javaindex/j2se/j...linecells.html

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  3. #3
    javama javama ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    102
    wozu dient dieses programmteil hier
    Code java:
    1
    2
    3
    4
    5
    6
    7
    
    if (isSelected) {      
         setForeground(table.getSelectionForeground());      
         setBackground(table.getSelectionBackground());    
    } else {      
                 setForeground(table.getForeground());      
                  setBackground(table.getBackground());   
             }


    wie kann man das vermeiden dass die wörter am ende der zeile nicht umgebrochen werden, also anders gesgat zeilenumbrüche nur bei leerzeichen
    Geändert von javama (16.01.12 um 12:39 Uhr)
     

  4. #4
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Der Codeteil markiert lediglich die selektierte Zelle, durch Änderung der Hintergrund- und Schriftfarbe.

    Durch diese zwei Aufrüfe, wird es eigentlich eingestellt, dass der Zeilenumbruch nur bei Leerzeichen erfolgen soll:
    Code java:
    1
    2
    
    setLineWrap(true);
    setWrapStyleWord(true);

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  5. #5
    javama javama ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    102
    jetzt funktioniert schon, aber es gibt noch ein problem,
    wenn ein Text gross ist, wird er nicht ganz angezeigt.
    mein programmCode sieht so aus:

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    
    class TableCellRendererMehrfachZeilen1 extends JTextArea implements TableCellRenderer{
     
        /**
         * Konstruktor
         * 
         */
        public TableCellRendererMehrfachZeilen1() {
            super.setLineWrap(true);
            super.setWrapStyleWord(true);
        }
     
        /**
         * 
         */
        private static final long serialVersionUID = 1L;
     
        /*
         * (non-Javadoc)
         * 
         * @see javax.swing.table.TableCellRenderer#getTableCellRendererComponent(javax.swing.JTable,
         *      java.lang.Object, boolean, boolean, int, int)
         */
        public Component getTableCellRendererComponent(JTable table, Object value,
                boolean isSelected, boolean hasFocus, int row, int column) {
            super.setText(value != null ? value.toString() : "");
            if (isSelected) {
                super.setForeground(table.getSelectionForeground());
                super.setBackground(table.getSelectionBackground());
            } else {
                super.setForeground(table.getForeground());
                super.setBackground(table.getBackground());
            }
     
            int cellWidth = (int) table.getCellRect(row, column, true).getWidth();
     
        //wenn der Text lang ist dann soll ich anstatt 1 die 2 oder 3 einsetzen aber ich will dass der 
    //gesamte text angezeigt wird
            super.setRows(1+(int) ((new JTextArea(super.getText())
            .getPreferredSize().getWidth() + super.getColumnWidth() * 2) / cellWidth));
     
            if (table.getRowHeight(row) != (int) getPreferredSize().getHeight()) {
                
                table.setRowHeight(row, (int) getPreferredSize().getHeight());
            }
     
            return this;
        }
    Geändert von javama (16.01.12 um 14:56 Uhr)
     

  6. #6
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Du kannst dir von dem JTextArea den Font zurückgeben lassen. Über diesen bekommst du die Schriftgröße raus. Dann musst du die Felder nur noch der Schriftgröße anpassen.

    Gruß

    Fabio
     
    Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]

    Tutorials:
    Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
    JAnimationPanel - Animationen für Swing/AWT
    SWTRatingBar (Bewertungs-Composite) selbst programmieren
    ____________________________________________________________________________
    Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.

  7. #7
    javama javama ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    102
    hat jemand eine Idee was ich hier noch ändern muss, so dass mein zelle (Jtextarea) zu jedem Text passt
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    int cellWidth = (int) table.getCellRect(row, column, true).getWidth();
            //System.out.println("cellWidth: "+cellWidth);
            super.setRows(7+(int) ((new JTextArea(super.getText())
                            .getPreferredSize().getWidth() + super.getColumnWidth() * 2) / cellWidth));
     
            if (table.getRowHeight(row) != (int) getPreferredSize().getHeight()) {
                
                table.setRowHeight(row, (int) getPreferredSize().getHeight());
            }
    danke
    Geändert von javama (18.01.12 um 09:58 Uhr)
     

  8. #8
    javama javama ist offline Mitglied Gold
    Registriert seit
    Feb 2011
    Beiträge
    102
    wie kann ich das machen dass die leere zeilen innerhalb eines texts zu vermeiden
    danke im voraus
    Geändert von javama (19.01.12 um 15:06 Uhr)
     

  9. #9
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    Ich würde so vorgehen: mehrere aufeinander folgende \n und/oder \r löschen. Und zu dem Post davor: Automatischen Zeilenumbruch (line wrap) aktivieren.
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 31.08.11, 15:50
  2. Background Color einer Zelle in einer JTable ändern
    Von fastfiler im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 26.05.09, 10:42
  3. [Excel] Text und Formel in einer Zelle
    Von SNOOK99 im Forum Office-Anwendungen
    Antworten: 6
    Letzter Beitrag: 18.09.08, 15:43
  4. JTable Text in einer Zelle markieren
    Von Mikezilla im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 25.09.06, 13:38
  5. [Excel] Tabellenblattname in einer zelle anzeigen lassen
    Von Suchfunktion im Forum Office-Anwendungen
    Antworten: 1
    Letzter Beitrag: 01.03.04, 22:45