tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
403
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Java_Anfänger Java_Anfänger ist offline Mitglied Bronze
    Registriert seit
    Sep 2007
    Beiträge
    32
    Hallo,

    ich hab ein Problem mit einer JTable.
    Ich möchte, dass wenn der User auf eine Zelle in meiner Tabelle (4 Spalten und beliebig viele Zeilen) klickt, automatisch die Zeile makiert wird, in der sich die Zelle befindet. Außerdem soll der User den Zelleninhalt nicht verändern dürfen. Ich hab schon ein bisschen was mit:
    Code java:
    1
    2
    3
    
    table.setRowSelectionAllowed(true);
    table.setCellSelectionEnabled(false);
    table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    probiert, aber irgendwie haut des net ganz so hin wie ich will
    Ist es ggf. auch möglich mehrere Zeilen untereinander zu makieren?

    Hoffe ihr könnt mir bei meinem Problem helfen

    Danke

    Gruß
    Java_Anfänger
     

  2. #2
    Java_Anfänger Java_Anfänger ist offline Mitglied Bronze
    Registriert seit
    Sep 2007
    Beiträge
    32
    Oh man, bin ich dumm

    Ich kann die Zeilen schon längst makieren, habe es blos nie gesehen,
    da ich nämlich eine Hintergrundfarbe gesetzt habe.

    Jetzt ergibts sich daraus natürlich ein neues Problem:
    Ich kann zwar die Zeilen makieren, sehe doch nur meine Hintergrundfarbe, dich ich bei den Zellen gesetzt habe. Ich habe auch mithilfe von table.setSelectionBackground(selectionBackground) versucht die Hintergrundfarbe des ausgewählten Bereichs zu ändern, bisher aber leider ohne Erfolg...

    Habt ihr vielleicht ne Idee was ich da machen kann?

    Grüße
    Java Anfänger
     

  3. #3
    Avatar von Matze
    Matze Matze ist offline Weltenwanderer
    Registriert seit
    Jul 2007
    Ort
    Die Welt
    Beiträge
    1.504
    Blog-Einträge
    7
    Guck dir doch mal den CellRenderer an! Damit hatte ich in meinem Projekt die ganzen Hintergrundfarben für Zellen, Reihen, Spalten, Markierungen usw Festgelegt.
     
    "... Jeder von uns ist Kunst... gezeichnet vom Leben" (Casper)

    "Sir?, we're sorrounded!"
    "Excellent, we can attack in any direction"

  4. #4
    Java_Anfänger Java_Anfänger ist offline Mitglied Bronze
    Registriert seit
    Sep 2007
    Beiträge
    32
    Vielen Dank für deine Hilfe, ich schau es mir gleich mal an
     

  5. #5
    Java_Anfänger Java_Anfänger ist offline Mitglied Bronze
    Registriert seit
    Sep 2007
    Beiträge
    32
    So jetzt hab ich es endlich gelöst

    Danke Matze für den Tipp, mit den CellRenderer hat es wunderbar geklappt!

    mit:
    Code java:
    1
    
    table.setDefaultRenderer( Object.class, new TMR_fehlValues());
    habe ich den CellRenderer der Tabelle hinzugefügt.

    und das ist mein CellRenderer
    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
    
    class CellRenderer_table extends DefaultTableCellRenderer
    { 
       public Component getTableCellRendererComponent(JTable table, Object value, 
             boolean isSelected, boolean hasFocus, int row, int column) 
       { 
          super.getTableCellRendererComponent(table, value, isSelected, 
                hasFocus, row, column); 
     
          this.setFont(new Font(this.getFont().getFamily(),Font.BOLD, this.getFont().getSize()));
          this.setForeground(Color.black);
          
          if(isSelected)
          {
              setBackground(new Color(151,203,255));
          }
          else
          {
              for(int i = 0; i < table.getRowCount(); i++)
              {
                  if(table.getValueAt(i, 0) != null)
                  {
                      if(row == i)
                      {
                          this.setBackground(new Color(250,203,107));
                      }
                  }
                  if(table.getValueAt(i, 1) != null)
                  {
                      if(row == i)
                      {
                          this.setBackground(new Color(208,252,205));
                      }
                  }
              }
          }
          return this; 
       } 
    }

    Nochmals Vielen Dank

    Grüße
    Java_Anfänger
     

Ähnliche Themen

  1. JTable neue Zeile springen?!
    Von ElJarno im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 19.07.10, 09:11
  2. JTable Zeile hinzufügen
    Von yaqwerdx im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 14.10.07, 18:05
  3. JTable Zeile markieren
    Von LarsHH im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 13.03.06, 10:42
  4. JTable --> Zeile ausblenden
    Von RMI_17 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 03.08.05, 11:43
  5. JTable mit feststehender Zeile
    Von takidoso im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 3
    Letzter Beitrag: 18.09.04, 13:48