Swing Spaltennamen aus dem jTable später rauslesen

GianaSisters

Bekanntes Mitglied
Hallo Zusammen,

bei meinem Netbeans wird das wie unten stehend automatisch in die initcomponents generiert.
Ich möchte zu einem späteren Zeitpunkt aber gerne

Java:
 column = new Object[] { "No.", "Funktion", "pot.Fehler", "pot.Folge", "B", "pot.Ursache", "A", "V/P", "aktuelle Maßnahme", "E", "RPZ", "empfohlene Maßnahme", "zu erledigen durch/bis", "getroffene Maßnahme", "B", "A", "E", "RPZ", "Status" };


Also sozusagen möchte ich gerne die Spalten im "Object[] column;" stehen haben.
Wie bekomme ich die raus ? Mit
Java:
column = jTable1.getModel()......
müßte es doch irgendwas geben ? Vielleicht ist es ne ganz einfache Sache, aber ich komme da nun nicht gerade drauf.
Würde mich sehr über eine Hilfe freuen.
Lg,
Giana

Java:
jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "No.", "Funktion", "pot.Fehler", "pot.Folge", "B", "pot.Ursache", "A", "V/P", "aktuelle Maßnahme", "E", "RPZ", "empfohlene Maßnahme", "zu erledigen durch/bis", "getroffene Maßnahme", "B", "A", "E", "RPZ", "Status"
            }
        ));
 

GianaSisters

Bekanntes Mitglied
Hallo SlaterB,

danke für die Hinweise. Ich denke dann kann ich mein Programm hinsichtlich der Spaltung des JTables nicht so einfach realisieren. Mein Ziel ist es die ersten 2 Spalten eines bestehendes jTables zu Freezen und hatte da ein kleines Programm im Internet gefunden.

Unten das Programm damit Du weißt worum es sich handelt:
Wie würdest Du das machen, wenn bei meinem Programm die Rowanzahl Dynamisch ist, aber die Spalten immer gleich bleiben ?

Java:
import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JViewport;
import javax.swing.UIManager;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.table.AbstractTableModel;

/**
 * @version 1.0 12/05/98
 */

public class FixedColumn extends JFrame {
  Object[][] data;

  Object[] column;

  JTable fixedTable, table;

  public FixedColumn() {
    super("Fixed Column");
    setSize(500, 200); //größe der tabelle Größe

    data = new Object[][] { { "1", "11", "A", "", "", "", "", "" },
        { "2", "22", "", "B", "", "", "", "" },
        { "3", "33", "", "", "C", "", "", "" },
        { "4", "44", "", "", "", "D", "", "" },
        { "5", "55", "", "", "", "", "E", "" },
        { "6", "66", "", "", "", "", "", "F" },
        { "7", "77", "", "", "", "", "", "G" }};
    column = new Object[] { "fixed 1", "fixed 2", "a", "b", "c", "d", "e","f" };

    AbstractTableModel fixedModel = new AbstractTableModel() {
        
      public int getColumnCount() {
        return 3;
      }

      public int getRowCount() {
        return data.length;
      }

      public String getColumnName(int col) {
        return (String) column[col];
      }

      public Object getValueAt(int row, int col) {
        return data[row][col];
      }
    };
    AbstractTableModel model = new AbstractTableModel() {
      public int getColumnCount() {
        return column.length - 3;
      }

      public int getRowCount() {
        return data.length;
      }

      public String getColumnName(int col) {
        return (String) column[col + 3];
      }

      public Object getValueAt(int row, int col) {
        return data[row][col + 3];
      }

      public void setValueAt(Object obj, int row, int col) {
        data[row][col + 3] = obj;
      }

      public boolean CellEditable(int row, int col) {
        return true;
      }
    };

    fixedTable = new JTable(fixedModel) {
      /*
         public void valueChanged(ListSelectionEvent e) {
        super.valueChanged(e);
        checkSelection(true);
      }
         */
    };
    table = new JTable(model) { 
        /*
      public void valueChanged(ListSelectionEvent e) {
        super.valueChanged(e);
        checkSelection(false);
      }
         * 
         */
    };
    fixedTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    fixedTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    JScrollPane scroll = new JScrollPane(table);
    JViewport viewport = new JViewport();
    viewport.setView(fixedTable);
    viewport.setPreferredSize(fixedTable.getPreferredSize());
    scroll.setRowHeaderView(viewport);
    scroll.setCorner(JScrollPane.UPPER_LEFT_CORNER, fixedTable
        .getTableHeader());

    getContentPane().add(scroll, BorderLayout.CENTER);
  }
/*
  private void checkSelection(boolean isFixedTable) {
    int fixedSelectedIndex = fixedTable.getSelectedRow();
    int selectedIndex = table.getSelectedRow();
    if (fixedSelectedIndex != selectedIndex) {
      if (isFixedTable) {
        table.setRowSelectionInterval(fixedSelectedIndex,
            fixedSelectedIndex);
      } else {
        fixedTable
            .setRowSelectionInterval(selectedIndex, selectedIndex);
      }
    }
  }

   * 
   */
  public static void main(String[] args) {
    FixedColumn frame = new FixedColumn();
   
    frame.setVisible(true);
  }
}
 
S

SlaterB

Gast
ich weiß nicht was deine Frage ist,
der gepostete Code funktioniert anscheinend, alles bestens, wozu musst du jetzt irgendwo Columns abfragen?

angesichts deines ersten Postings denke ich immer noch, dass dein Ziel ist,
ein
> column = new Object[] { "fixed 1", "fixed 2", "a", "b", "c", "d", "e","f" };
Array aufzubauen, anscheinend aus Daten eines anderen Models?
das kannst du machen indem du es einfach machst,
wie gesagt mit den Standard-Methoden, zusätzliche Tipps: Array anlegen, Schleife usw.
 

GianaSisters

Bekanntes Mitglied
Hallo Slatha,

noch einmal vielen Dank, dass Du Dich meinem Problem annehmen willst.
Ich habe einen Screenshot von dem bestehenden Programm gemacht:
fmeascreen.jpg


Man kann neue Zeilen einfügen oder wie in dem Beispiel werden von einer Datenbank die Daten sofort reingeladen.

Mein Problem ist es, dass das Netbeans worunter ich das Programmiere die ganze Initialisierung wie beim übernächsten Ausschnitt so vornimmt:

Java:
public FmeaHauptSeite() throws FileNotFoundException, IOException, SQLException, ClassNotFoundException {
       
        initComponents();
        // Felderspalten größen
        jTable1.getColumnModel().getColumn(1).setPreferredWidth(300);
        jTable1.getColumnModel().getColumn(2).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(3).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(4).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(5).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(6).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(7).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(8).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(9).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(10).setPreferredWidth(100);
        jTable1.getColumnModel().getColumn(11).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(12).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(13).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(14).setPreferredWidth(40);
        jTable1.getColumnModel().getColumn(15).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(16).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(17).setPreferredWidth(150);
        jTable1.getColumnModel().getColumn(18).setPreferredWidth(150);
        jTable1.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);

in den Initcomponents sind wie folgt Zeilen zu finden wie:
Java:
 private void initComponents() {

        jPopupMenu1 = new javax.swing.JPopupMenu();
        jPanel1 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
          .
          .
          .
jTable1.setBackground(new java.awt.Color(255, 255, 153));
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {

            },
            new String [] {
                "No.", "Funktion", "pot.Fehler", "pot.Folge", "B", "pot.Ursache", "A", "V/P", "aktuelle Maßnahme", "E", "RPZ", "empfohlene Maßnahme", "zu erledigen durch/bis", "getroffene Maßnahme", "B", "A", "E", "RPZ", "Status"
            }
        ));
        jTable1.setRowHeight(50);
        jTable1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);

Allerdings weiß ich jetzt nicht an welcher Stelle ich den jTable splitten soll bzw. wo ich das Programm was ich gefunden habe einsetzen kann. Muss schon bei dieser initialisierung nicht gesagt werden, dass diese Splittung erfolg ? Letztendlich möchte ich halt dieses FixedColumn-Programm bei mir unterbringen.... nur wo.. :(

Zu deinen Hinweisen:
Ja mein Ziel wäre es ein column = new Object[] { "fixed 1", "fixed 2", "a", "b", "c", "d", "e","f" };
(natürlich mit entsprechenden anderen Namen), aber einfach nur darum weil ich mir vorstellen könnte es dadurch leichter zu haben das Programm anzupassen...
Ich hoffe Du konntest mir folgen. Ich glaube halt nicht, dass wenn ich jetzt z.b. den öffnen Button drücke, dass erst dann der Scrollpanel nurnoch über die Spalten ab 3 läuft - das muss doch sicherlich schon vorher irgendwie bekannt gegeben werden ?
Viele Grüße und wenn das läuft drehe ich durch (wenn nicht aber auch) :)
Giana
 
S

SlaterB

Gast
du schreibst Kleinigkeiten, wesentliche Dinge liegen aber auf der Hand, die von dir unbeantwortet bleiben

die GUI ist bisher automatisch generiert, richtig? inwiefern soll das so bleiben?
- willst du dich jetzt mit einem Schlag endgültig von diesem Sakrileg, welches jede sinnvolle Programmierung verhindert, verabschieden? (zu empfehlen)
- oder willst du alles so lassen, nur dass zufällig gleich die Tabelle richtig gebaut wird (über GuiBuilder-Steuerung wohl nicht zu erreichen)
- oder willst du eine Misch-GUI, bestimmte Teile, die Tabelle, durch deinen eigenen Code ersetzen (ob das der GUIBuilder mal aktzeptiert, auch hinsichtlich späterer weiterer Änderungen..)
- oder willst du die Initialisierung so lassen, nur ein wenig später die fertig erzeugte GUI modifizieren, die vorhandene Tabelle herausnehmen und durch zwei andere ersetzen?
das passt noch am ehesten zur Ursprungsfrage, zum Herauslesen der Columns, ist aber reichlich abwegig

-----

bevor ich zu allen möglichen noch mehr blah blah schreibe empfehle ich nochmal zunächst Variante 1,

den bisherigen Code kannst du ja als Ausgangslage nutzen, aber nun das Komando übernehmen,
dort wo die Tabelle steht kommt dein Code rein, mit den Model-Definitionen usw., als Spalten-Array nimmst du eben das vorhandene mit
> "No.", "Funktion", "pot.Fehler", "pot.Folge", "B", "pot.Ursache", "A", "V/P", "aktuelle Maßnahme", "E", "RPZ", "empfohlene Maßnahme", "zu erledigen durch/bis", "getroffene Maßnahme", "B", "A", "E", "RPZ", "Status"
usw.

das ist natürlich eine Arbeit, wenn du bisher nichts selber gemacht hast wird das nicht auf Anhieb klappen,
aber zumindest wäre dann die Ausgangsfrage 'Spaltennamen aus dem jTable später rauslesen' weg vom Fenster, oder?

wie ist der Stand?
 

GianaSisters

Bekanntes Mitglied
Hallo SlaterB,

> die GUI ist bisher automatisch generiert, richtig? inwiefern soll das so bleiben?
- Netbeans erstellt automatisch einen generierten Code, der mit initComponents aufgerufen wird. Diesen zu bearbeiten ist nicht möglich bzw. wird in dem Thread ( http://www.java-forum.org/ides-tools/52340-netbeans-generierter-code-editierbar.html ) davon abgeraten.
- Die Möglichkeit die da beschrieben ist wäre einen eigenen Code nach der automatischen Generierung zu machen. Würde bei mir wohl heißen den jTable aus der GUI zu entfernen und selber in einem Code aufzubauen. Da sehr viel Rattenschwanz an dem jTable wollte ich vorher Fragen ob Du denkst, dass dies das Richtige wäre (und vor allem ob es möglich wäre nach den initComponents weiter in die Gui einzugreifen).

> willst du dich jetzt mit einem Schlag endgültig von diesem Sakrileg, welches jede sinnvolle Programmierung verhindert, verabschieden? (zu empfehlen)
- Das würde wohl heißen sich komplett mit dem Designen der Oberfläche zu verabschieden. Bisher hatte ich mich nicht damit beschäftigt, weil ich die Sachen auch so hinbekommen hatte. Aber natürlich als Programmierer sollte man das auch drauf haben. Wenn es nur so geht, dass ich den Gui Builder nicht benutzen kann für dieses Problem muß ich wohl oder übel umsteigen.

> oder willst du die Initialisierung so lassen, nur ein wenig später die fertig erzeugte GUI modifizieren, die vorhandene Tabelle herausnehmen und durch zwei andere ersetzen?
- Das klingt gut. Wie oben schon beschrieben wäre das wohl die sinnvollste und vermutlich einfachste Möglichkeit. Allerdings weiß ich nicht wie ich jetzt nach dem initComponents mit genau diesem jTable die gewünschten Änderungen vornehmen kann

> den bisherigen Code kannst du ja als Ausgangslage nutzen, aber nun das Komando übernehmen,...
- Vielleicht wäre das auch eine Möglichkeit, dass ich mir die initComponents einfach kopiere und dort den Code einfüge. Damit werde ich es jetzt versuchen. Hälst Du das auch für die sinnvollste Möglichkeit?

lg,
Giana
 
S

SlaterB

Gast
Komando statt Kommando sieht ja wirklich schlimm aus bei mir..

ich halte es für eine recht sinnvolle Möglichkeit, was nun das beste ist, ist schwierig zu sagen,
wie ich bereits schrieb ist das meine Empfehlung, ja
 

GianaSisters

Bekanntes Mitglied
Hallo Slather,

ich war jetzt am überlegen ob ich versuchen soll weiter Deine Zeit in Anspruch zu nehmen, aber da ich jetzt nach Stunden rumfrickeln (auch wenn ich ein Java-Zertifikat habe heißt das noch lange nicht, dass man alles direkt versteht) nicht genau weiß wie ich das oben gelinkte Beispielprogramm bei mir mit reinbaue, hoffe ich darauf, dass Du nochmal ein paar Momente für mich Zeit hast.

Jedenfalls habe ich jetzt den generierten Code ausgestellt, aber natürlich für mich erstmal übernommen. Hier die Passage über den jTable:

Java:
  jTable1.setBackground(new java.awt.Color(255, 255, 153));
       
        
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            data1 = new Object [][] {

            },
            column1 = new String [] {
                "No", "Funktion", "pot.Fehler", "pot.Folge", "B", "pot.Ursache", "A", "V/P", "aktuelle Maßnahme", "E", "RPZ", "empfohlene Maßnahme", "zu erledigen durch/bis", "getroffene Maßnahme", "B", "A", "E", "RPZ", "Status"
            }
        ));
        
        jTable1.setRowHeight(50);
        jTable1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jTable1.getTableHeader().setResizingAllowed(false);
        jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTable1MouseClicked(evt);
            }
        });
        jTable1.addComponentListener(new java.awt.event.ComponentAdapter() {
            public void componentMoved(java.awt.event.ComponentEvent evt) {
                jTable1ComponentMoved(evt);
            }
        });
        jTable1.addFocusListener(new java.awt.event.FocusAdapter() {
            public void focusLost(java.awt.event.FocusEvent evt) {
                jTable1FocusLost(evt);
            }
        });
        jTable1.addInputMethodListener(new java.awt.event.InputMethodListener() {
            public void caretPositionChanged(java.awt.event.InputMethodEvent evt) {
                jTable1CaretPositionChanged(evt);
            }
            public void inputMethodTextChanged(java.awt.event.InputMethodEvent evt) {
                jTable1InputMethodTextChanged(evt);
            }
        });
        jTable1.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                jTable1KeyReleased(evt);
            }
            public void keyTyped(java.awt.event.KeyEvent evt) {
                jTable1KeyTyped(evt);
            }
        });
        jScrollPane1.setViewportView(jTable1);
        jTable1.getColumnModel().getColumn(0).setResizable(false);
        jTable1.getColumnModel().getColumn(0).setPreferredWidth(28);
// JTABLE BETREFFEND ENDE

Das Problem ist auch, dass ich wohl nicht ganz verstanden habe, wie überhaupt 2 JTables exisitieren und auf den vermutlich selben zugreifen. Es gibt einmal in diesem Beispiel von oben fixedTable und table. In wie weit muss ich diesen generierten Code den ich gepostet habe umschreiben ? Ich habe nun auch versucht einen fixedTable reinzubauen aber es kam immer zu fehlern.
Nochmal vielen vielen dank für die Hilfen, bin ja schon ein paar kleine Schritte weitergekommen.
Giana
 
S

SlaterB

Gast
poste doch deine Variante mit Fehlern,
verstehst du die Fehler rein sprachlich nicht oder welche Konflikte siehst du durch deinen Code (anders als der Compiler) eigentlich gelöst?
paar Begründungen wären nett,

das aktuelle Posting ist ja gar nix, nur die alte Tabelle, nicht eine Zeile selber Arbeit dazu geleistet (böse interpretiert)

-----

das fixed-Beispiel ist so linear aufgebaut das wirklich nichts interessantes dazu einfallen kann,
erst kommen die Daten, allgemein definiert damit beide Model damit arbeiten können, sonnenklar,
dann kommen die beiden Model, alles Standard, nur wo nötig eingebaut um wieviele Spalten versetzt, jede Codestelle sonnenklar,
und dann kommen schon die beiden Tabellen die auf beliebige Weise ins Layout eingesetzt werden,
es ist kein Ansatz für irgendeine Art von Schwierigkeit sichtbar
 

GianaSisters

Bekanntes Mitglied
Du hast schon recht, dass ich da nicht viel selber zu gemacht habe.
Ich poste mal den Code was da so am anfang vom öffnen des Frames passiert (leider mit viel unnötigen zeugs die hier keine Rolle spielen - vermutlich auch schlechte Programmierung).
Bei initComponents2 wird nun der beschriebene Initialisierungscode geladen. Das blöde ist halt, dass der jTable auf beiden Ebenen eine Rolle spielt. Einmal in der Initialiserung, und einmal hier bei der eröffnung. Deshalb weiß ich nicht genau wo man das nun alles erledigen sollte. Ganz unten die Variante mit Fehlern:



Java:
public class FmeaHauptSeite extends javax.swing.JFrame {
    final Color color = UIManager.getColor("Table.gridColor");
   // DefaultTableModel dtm;
    int markierteSpalte;
    Globales gb = new Globales();
    Object[][] data1;
    Object[] column1;
    String StrID = "";
    AktuelleRahmen komplettrahmen = new AktuelleRahmen();
    List<Integer> funktionRahmenliste = new ArrayList<Integer>();
    List<Integer> potFehlerRahmenliste = new ArrayList<Integer>();
   
    /** Creates new form FmeaHauptSeite */
    public FmeaHauptSeite() throws FileNotFoundException, IOException, SQLException, ClassNotFoundException {
       
        initComponents2();
        // Felderspalten größen
        jTable1.getColumnModel().getColumn(1).setPreferredWidth(300);
        jTable1.getColumnModel().getColumn(2).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(3).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(4).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(5).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(6).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(7).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(8).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(9).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(10).setPreferredWidth(100);
        jTable1.getColumnModel().getColumn(11).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(12).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(13).setPreferredWidth(200);
        jTable1.getColumnModel().getColumn(14).setPreferredWidth(40);
        jTable1.getColumnModel().getColumn(15).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(16).setPreferredWidth(70);
        jTable1.getColumnModel().getColumn(17).setPreferredWidth(150);
        jTable1.getColumnModel().getColumn(18).setPreferredWidth(150);
        jTable1.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
        gb.setzen();
        // Mit dem Header arbeiten
        JTableHeader header = jTable1.getTableHeader();
        // ColumnModel holen:
        TableColumnModel columnModel = header.getColumnModel();

        // TableColumn erstellen
        TableColumn aColumn = new TableColumn();
        TextAreaRenderer TAR = new TextAreaRenderer("hundekind", komplettrahmen);
       
        header.setDefaultRenderer(new MyHeaderCellRenderer());
        
        jTable1.getColumnModel().getColumn(0).setCellRenderer(TAR);
        jTable1.getColumnModel().getColumn(1).setCellRenderer(TAR);
        jTable1.getColumnModel().getColumn(2).setCellRenderer(TAR);
        jTable1.getColumnModel().getColumn(3).setCellRenderer(TAR);
        jTable1.getColumnModel().getColumn(5).setCellRenderer(TAR);
        jTable1.getColumnModel().getColumn(8).setCellRenderer(TAR);
        jTable1.getColumnModel().getColumn(10).setCellRenderer(TAR);
        jTable1.getColumnModel().getColumn(11).setCellRenderer(TAR);
        jTable1.getColumnModel().getColumn(12).setCellRenderer(TAR);
        jTable1.getColumnModel().getColumn(13).setCellRenderer(TAR);
        jTable1.getColumnModel().getColumn(17).setCellRenderer(TAR);
        jTable1.getColumnModel().getColumn(18).setCellRenderer(TAR);
        jTable1.setDefaultRenderer(Object.class,new MyTableCellRenderer(true, jTable1));
   
    //jTable1.getTableHeader().setBackground(new Color(232, 232, 232));
 

        setExtendedState(FmeaHauptSeite.MAXIMIZED_BOTH);

       
        // Richtige Daten laden
         DateLadenSpeichern IDLaden = new DateLadenSpeichern();
        StrID =IDLaden.laden("config/IDs.dat");
        // Per SQL nun die Felder füllen
        String AusgabeString;
        String[] AusgabeElemente;
            SQLBefehlEinUndAusgabe AusgabeWert = new SQLBefehlEinUndAusgabe();
            AusgabeString = AusgabeWert.SQLBefehl(("select * from `" + gb.Datenbankname + "`.`grunddaten` WHERE ID = " + StrID + ";"),1);
            AusgabeElemente = AusgabeString.split(";");
            if (AusgabeElemente[1].equals("null")) {jLblAusModell.setText("-");} else { jLblAusModell.setText(AusgabeElemente[1]);}
            jLblAusTeil.setText((AusgabeElemente[2]));
            jLblAusFMEATeam.setText((AusgabeElemente[3]));
            jLblAusFMEAMod.setText((AusgabeElemente[4]));
            jLblAusPlattform.setText((AusgabeElemente[5]));
            jLblAusTeileNummer.setText((AusgabeElemente[6]));
            // PlattformFreigabedatum checken
            if (AusgabeElemente[7].equals("1900-01-01")) jLblAusPlattFreigabe.setText("-"); else jLblAusPlattFreigabe.setText((AusgabeElemente[7]));
            if (AusgabeElemente[8].equals("1900-01-01")) jLblAusModellFrei.setText("-"); else jLblAusModellFrei.setText((AusgabeElemente[8]));
         
            jLblAusFMEANummer.setText((AusgabeElemente[9]));
            jLblAusVerantwortlich.setText((AusgabeElemente[10]));
            jLblAusStartdatum.setText((AusgabeElemente[11]));
            jLblAusRevision.setText((AusgabeElemente[12]));
            if (AusgabeElemente[13].equals("0")) jLblAusFMEATyp.setText("Prozess");
            if (AusgabeElemente[13].equals("1")) jLblAusFMEATyp.setText("System");
            jTable1.setCellSelectionEnabled(true);
            //    jTable1.setShowGrid(false);
        //    jTable1.setShowHorizontalLines(false);
           // jTable1.setValueAt(jMenu2,2, 2);
 
      //       jTable1.setDefaultRenderer(Object.class, Border1);
    jTable1.setIntercellSpacing(new Dimension(0,0));
    jTable1.setCellSelectionEnabled(true);
    jTable1.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
//    tablePane.setVisible(true);
    jTable1.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

    jTable1.setDefaultRenderer(Object.class,new MyTableCellRenderer(true,komplettrahmen, jTable1, Globales.globalSpalte, (jTable1.getRowCount()-1),0));
   // Laden();
    }



Fehlervariante 1:
Java:
// ++++++++++JTable betreffend start 
    
        
        jTable1.setBackground(new java.awt.Color(255, 255, 153));
       
        
        jTable1.setModel(new javax.swing.table.DefaultTableModel(
            data1 = new Object [][] {

            },
            column1 = new String [] {
                "No", "Funktion", "pot.Fehler", "pot.Folge", "B", "pot.Ursache", "A", "V/P", "aktuelle Maßnahme", "E", "RPZ", "empfohlene Maßnahme", "zu erledigen durch/bis", "getroffene Maßnahme", "B", "A", "E", "RPZ", "Status"
            }
        ));
       
         fixedTable = new JTable(fixedModel) {   
    };
        
         jTable1 = new JTable(model) {     
    };
        jTable1.setRowHeight(50);
        jTable1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jTable1.getTableHeader().setResizingAllowed(false);
        jTable1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTable1MouseClicked(evt);
            }
        });

Probleme hat er mit den Zeilen auf der Hauptseite:
...
jTable1.getColumnModel().getColumn(14).setPreferredWidth(40);
jTable1.getColumnModel().getColumn(15).setPreferredWidth(70);
jTable1.getColumnModel().getColumn(16).setPreferredWidth(70);
...
Schiebe ich diese in die Initialisierung gehts...
Genauso hat er Probleme mit:
...
jTable1.getColumnModel().getColumn(0).setCellRenderer(TAR);
jTable1.getColumnModel().getColumn(1).setCellRenderer(TAR);
jTable1.getColumnModel().getColumn(2).setCellRenderer(TAR);
...
Vermutlich weil in beiden fällen auf das ColumnModel zugegriffen wird (wobei ich aber nicht denke, dass dies ein Problem in diesem Fall darstellt.
Schiebe ich Beide getcolummodel-geschichten in die initialisierung entsteht der jTable aber ohne irgendwelche Berücksichtigungen der spaltenbreite, farben usw..
Ich denke, du willst mehr Infos zu der Sache, aber ich fürchte das grundliegende Problem was ich habe ist bereits 2 jTables (fixedtable und table) irgendwie zu kombinieren.
Die beiden AbstractTableModel hab ich schon integriert.
 

bERt0r

Top Contributor
Ich hab jetzt gar keine Ahnung über was es in den 500 Zeilen Code Posts da oben geht, ich versuch einfach mal die Frage im OP zu beantworten. So kannst du auf die Spaltennamen zugreifen:
Java:
JTable table=new JTable();
TableColumnModel columnModel=table.getColumnModel();
Enumeration<TableColumn> e=columnModel.getColumns();
while(e.hasMoreElements())
{
	TableColumn c=e.nextElement();
	System.out.println(c.getHeaderValue());
}
 

GianaSisters

Bekanntes Mitglied
Es geht hier nicht darum den Inhalt der Zellen auszulesen.
Ich möchte den ersten 2 Zeilen einfrieren. In dem Programm oben ist dies möglich - nur jetzt möchte ich es in einen bestehen jTable umsetzen und das macht mir Probleme.
Momentanes Problem: Mit der Zeile
Java:
 jTable1 = new JTable(model) {               
    };
werden die ganzen Einstellungen die ich zum jTable1 gemacht habe überschrieben. Wie kriege ich die da rein ?! Das wäre ein erster schritt, so das ich später auf das Model zugreifen kann...
 

bERt0r

Top Contributor
Meine paar Zeilen code zeigen wie man die Spaltennamen eines JTables ausliest. Nachdem das der Titel dieses Threads war, dachte ich das ist das was du machen willst. Deine Beschreibungen was du eigentlich erreichst verstehe ich leider nicht. Was heisst einfrieren, was sind Probleme, und von was für Einstellungen sprichst du???
Wenn du new JTable() schreibst wird natürlich ein neuer JTable erstellt.
Die 100 Zeilen Code mit denen du die Spaltenbreiten bestimmst wirken sich dann nicht mehr aus. Vielleicht verwechselst du einfach das ColumnModel mit dem TableModel.
 

GianaSisters

Bekanntes Mitglied
Hallo Betror,

danke, dass Du mir helfen willst. Auch wenn Du bisher nur die Überschrift gelesen hast versuche ich mein Problem nochmal zu erklären. Mit einfrieren meine ich, dass die ersten 2 Spalten immer zu sehen sind und beim scrollen nach rechts die 2 Spalten weiterhin sichtbar bleiben und der rest sich halt dem scrollen anpasst. Eine Möglichkeit wie das geht habe ich ja oben in dem Miniprogramm gepostet was ich per google gefunden hatte. Jetzt versuche ich das auf mein komplexeres Programm umzusetzen was ich nicht schaffe. Das liegt einmal daran dass in meinem Beispiel programm ein leerer jTable verwendet wird und bei mir da schon ein ziemlich ausgereifert ist, der damals von netbeans generiert wurde und alles mögliche an Listenern dran hat. Ich habe nun keine Ahnung wie ich das mit dem FixedTable zusätzlich anstelle dies nun in mein Programm einzubauen. Wenn mir da jemand helfen könnte wäre das echt der Hammer, aber irgendwie sind da wohl ein paar Gedanken die ich nicht verstehe.
Gruß,
Giana
 

Michael...

Top Contributor
Ich verstehe Deine Problematik nicht und die wird anhand des geposteten Codes auch nicht deutlich.
In dem Beispiel werden einfach nur zwei TableModels basierend auf den selben Daten und zwei JTables verwendet die eine JTable wird als RowHeader der JScrollPane gesetzt und ist damit fix, die andere JTable mit dem TableModel ohne die ersten zwei "Datenspalten" wird ganz normal in die JScrollPane eingefügt.
Das musst Du einfach nur auf Deinen Fall adaptieren, indem Du Dein bestehendes TableModel anpasst und ein zusätzliches definierst. Irgendewelche Listener, die auf Eingaben/ Veränderungen... der ersten zwei Spalten reagieren sollen musst Du dann natürlich auch an die zweite JTable hängen.
 

bERt0r

Top Contributor
Ich glaube ich verstehe langsam was du meinst. Deine Screenshots und der Code den du gepostet hast verwirren mehr als dass sie dein Problem beschreiben.
Das Programm das du gepostet hast ist ja auch nur ein Beispiel, wenn du nicht verstehst wie und wieso das so gemacht wurde, wirst dir das nicht viel helfen. Ich kann dir mal in Grundzügen beschreiben was da geschieht: Der Table wird in zwei Tables aufgespalten. Ein Table kommt in den ColumnViewport des ScrollPanels, der andere in den normalen Viewport, das erzeugt den gewünschten effekt.
Dieses Beispiel ist nich universell überallhin übertragbar, ich würde das eher als hack ansehen.
Eins ist aber klar, wenn du den Code verwenden willst, ist mit GUI Builder schluss. Da musst du selber Hand anlegen.
 

GianaSisters

Bekanntes Mitglied
Danke Michael und Bert0r ! Sicherlich wird es irgendwie anpassbar sein, aber mein Können reicht wohl bisher nicht aus um es vernünftig zu adaptieren.

Das grundliegende Problem was ich nun habe ist, wo ich den Code reinschreiben sollte.
Die ganzen grafischen Elemente werden bei mir in dem (mittlerweile manuellen) Code von initComponents geschrieben.
So wie ich das verstehe sollte ich nun den bestehenden jTable mit all seinen Einstellungen duplizieren und nur in Änderungen in dem Scrollpanel und den wo-in-dem-wann-in-dem-anderen table geschrieben wird machen ?! Ich habe keine Ahnung wie ich das umsetzen soll.
Am liebsten würde ich erstmal dieses Beispiel in dem Hauptframe haben, aber selbst das kriege ich nicht hin. :-(
Hmmm weiß jetzt echt nicht weiter, aber sieht eigentlich gar nicht so schwer aus...
 

Michael...

Top Contributor
Der ganze Trick liegt eigentlich nur in den zwei TableModels, die sich den gemeinsamen Datensatz teilen, ihn nach aussen hin aber nur begrenzt darstellen. Das eine TableModel behauptet einfach es hat nur 2 Spalten und das andere es hat x - 2 Spalten und liefert wenn es nach dem Datensatz in Spalte 0 gefragt wird denn Datensatz mit dem Index (0 + 2)
 
S

SlaterB

Gast
um auch mal wieder reinzuschauen?
ist ein TableRenderer usw. überlebensnotwendig?
das ganze Programm sollte vorerst laufen ohne dass auch nur einmal irgendwo getColumnModel() aufgerufen werden muss,
falls der GUI-Builder das anfangs macht und diese Einstellungen verschwinden ist das ein Luxusproblem welches
man nachgelagert lösen kann, oder geht es bereits genau darum?
 

GianaSisters

Bekanntes Mitglied
Ich habe jetzt mal ein neues Projekt angefangen um die grundsächlichen Sachen hinzukriegen. Selbst da scheitert es schon. Ich schaffe es noch nicht mal ohne den Gui Builder irgendwo einen jTable und einen Button zu erstellen.
Ich habe mit Netbeans ein leeres jFrame erzeugt und da einfach mal einen Button hingesetzt. So, natürlich wird dann ein kleines initComponents erzeugt welches ich dann zur eigenen Bearbeitung freigegeben habe. Also ganz wenig Code steckt da drinnen.
Jetzt habe ich den Code aus dem Beispielprogramm übernommen, und kriege selbst da schon nichts Kombiniert. Rufe ich initComponents auf erscheint das Frame was ich per Hand gemacht habe - lasse ich den Aufruf weg erscheint dieses Beispielprogramm. Ich würde ja schon gerne wissen wie ich das Beispielprogramm (sprich jTable) in mein einfaches Frame mit dem Button kriege. Daran harpert es schon. Dennoch, eure Hilfe war nicht ganz umsonst, sobald ich das da irgendwie kombiniert kriege weiß ich vermutlich dann was zu tun ist. Ist mein Problem verständlich ? Das sind irgendwie grundliegende Dinge die ich nicht checke wieso da ein komplettes Frame einfach überschrieben wird...
 
S

SlaterB

Gast
es ist verständlich, dass du ein Problem hast, ja,

besteht über diese Feststellung hinaus eine Frage?
ohne deinen Code ist dazu nichts zu sagen,

ein Beispiel-JFrame zu posten fällt zum Glück auch weg wenn du schon Beispiele hast, die du dann kopierst statt sie komplett zu verwenden
 

GianaSisters

Bekanntes Mitglied
oh man ich blamiere mich nun wirklich.
Ich poste mal den Code den ich habe. Um es kurz zu sagen, das Frame wird aus der Main aufgerufen "initComponents2()" ist nun das manuelle was vorher von Netbeans aus erstellt wurde.
Aus dem Weglassen von "initComponents2();" erfolgt das jTable im Frame, ansonsten sehe ich nur das mit dem Gui gemachten Frame...
Die Frage ist: Wie verknüpfe ich den jTable mit dem Frame wo der Button ist. Eigentlich ist das auch die Ursprungsfrage meines Problems, nur hatte ich es anfangs nicht erkannt, dass es schon daran harpert.

Java:
public class TestFrame extends javax.swing.JFrame {
         Object[][] data;
         Object[] column;
         JTable fixedTable, table;
        
    /** Creates new form TestFrame */
  private void initComponents2() {

        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jButton1.setText("OK");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jButton1)
                .addContainerGap(467, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(319, Short.MAX_VALUE)
                .addComponent(jButton1)
                .addGap(19, 19, 19))
        );

        pack();
    }// </editor-fold>
         
    public TestFrame() {
         super("Fixed Column");
         setSize(500, 200); //größe der tabelle Größe
         
       data = new Object[][] { { "1", "11", "A", "", "", "", "", "" },
        { "2", "22", "", "B", "", "", "", "" },
        { "3", "33", "", "", "C", "", "", "" },
        { "4", "44", "", "", "", "D", "", "" },
        { "5", "55", "", "", "", "", "E", "" },
        { "6", "66", "", "", "", "", "", "F" },
        { "7", "77", "", "", "", "", "", "G" }};
    column = new Object[] { "fixed 1", "fixed 2", "a", "b", "c", "d", "e","f" };
    initComponents2();
    AbstractTableModel fixedModel = new AbstractTableModel() {
        
      public int getColumnCount() {
        return 3;
      }

      public int getRowCount() {
        return data.length;
      }

      public String getColumnName(int col) {
        return (String) column[col];
      }

      public Object getValueAt(int row, int col) {
        return data[row][col];
      }
    };
    AbstractTableModel model = new AbstractTableModel() {
      public int getColumnCount() {
        return column.length - 3;
      }

      public int getRowCount() {
        return data.length;
      }

      public String getColumnName(int col) {
        return (String) column[col + 3];
      }

      public Object getValueAt(int row, int col) {
        return data[row][col + 3];
      }

      public void setValueAt(Object obj, int row, int col) {
        data[row][col + 3] = obj;
      }

      public boolean CellEditable(int row, int col) {
        return true;
      }
    };

    fixedTable = new JTable(fixedModel) {
      /*
         public void valueChanged(ListSelectionEvent e) {
        super.valueChanged(e);
        checkSelection(true);
      }
         */
    };
    table = new JTable(model) { 
        /*
      public void valueChanged(ListSelectionEvent e) {
        super.valueChanged(e);
        checkSelection(false);
      }
         * 
         */
    };
    fixedTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    fixedTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    JScrollPane scroll = new JScrollPane(table);
    JViewport viewport = new JViewport();
    viewport.setView(fixedTable);
    viewport.setPreferredSize(fixedTable.getPreferredSize());
    scroll.setRowHeaderView(viewport);
    scroll.setCorner(JScrollPane.UPPER_LEFT_CORNER, fixedTable
        .getTableHeader());

    getContentPane().add(scroll, BorderLayout.CENTER);
   
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jButton1 = new javax.swing.JButton();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jButton1.setText("OK");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jButton1)
                .addContainerGap(467, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap(319, Short.MAX_VALUE)
                .addComponent(jButton1)
                .addGap(19, 19, 19))
        );

        pack();
    }// </editor-fold>

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
     JOptionPane.showMessageDialog(null, "Test", "Test Titel", JOptionPane.OK_CANCEL_OPTION);
     System.exit(0);
}

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see [url=http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html]How to Set the Look and Feel (The Java™ Tutorials > Creating a GUI With JFC/Swing > Modifying the Look and Feel)[/url] 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(TestFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(TestFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(TestFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(TestFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new TestFrame().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify
    private javax.swing.JButton jButton1;
    // End of variables declaration
}
 
S

SlaterB

Gast
GroupLayout läuft bei mir unter Java 1.6 nicht, damit schließt du mich aus den Tests aus,
außer GUI-Buildern benutzt glaube ich auch niemand solche Code-Monster

dort etwas einzufügen kann in der Tat schwierig werden, da kann ich auch nicht helfen,
verwende einfache Layouts aus Tutorials, aber ich sehe ein dass das keine schöne Antwort ist

die Neuorientierung wäre also, evtl. GUI-Builder-Code zu übernehmen, ja,
aber wohl das GroupLayout dort, zumindest auf der Hauptebene des ContentPane des JFrames, zu entfernen,
viel bleibt dann vielleicht gar nicht mehr übrig, aber so ist das eben,
FlowLayout ist ein einfacher Anfang

Lesson: Laying Out Components Within a Container (The Java™ Tutorials > Creating a GUI With JFC/Swing)
 

GianaSisters

Bekanntes Mitglied
Vielen Dank für die Antwort, dann werde ich da erstmal drin einsteigen. Klingt leider echt sehr kompliziert, hatte mir was einfacherer gedacht. z.b. der jTable in einen Panel rein, wodurch man sich dann nicht mehr ganz so viel um irgendwas kümmern müßte... Aber da muss ich wohl durch, blöd dass ich mit dem Hauptprogramm nicht direkt so angefangen habe :(
Trotzdem wäre es schön, wenn vielleicht noch jemand mir da helfen kann.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
Q JTable - Keine Spaltennamen AWT, Swing, JavaFX & SWT 3
G JTable spaltennamen ändern sich nicht AWT, Swing, JavaFX & SWT 4
K JTable Spaltennamen ändern AWT, Swing, JavaFX & SWT 2
T Spaltennamen jeweils der angezeigten Tabelle anpassen AWT, Swing, JavaFX & SWT 19
J JTablemi DefaultTableModel:Spaltennamen werd.nicht angezeigt AWT, Swing, JavaFX & SWT 4
I Swing JTable zeichnet kein vertical Grid AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
S HPRO und UPRO gemeinsame JTABLE gemeinsamer RENDERER ? AWT, Swing, JavaFX & SWT 1
F Swing JTable - MultiHeader inkl. Eingabemöglichkeit AWT, Swing, JavaFX & SWT 1
S JTable - Feldinhalte anzeigen AWT, Swing, JavaFX & SWT 15
D Swing JTable Spaltenbreite AWT, Swing, JavaFX & SWT 1
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
G jTable - getSelectedRow() AWT, Swing, JavaFX & SWT 3
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
P JTable Listener für die Änderung einzelner Zellen oder Rows AWT, Swing, JavaFX & SWT 2
D Tastaturabfragen CTRL+t, CTRL+E bei eine JTable, bestehend aus JTextAteas AWT, Swing, JavaFX & SWT 4
P Checkboxes in JTable nicht editable AWT, Swing, JavaFX & SWT 9
F Best-Practise: JTable Text in Zelle zu groß AWT, Swing, JavaFX & SWT 2
izoards JTable in CSV File schreiben... AWT, Swing, JavaFX & SWT 23
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
I JTable, DefaultTableModel, zwei Zahlen multiplizieren. AWT, Swing, JavaFX & SWT 26
M JTABLE / wie oft wurde gewürfelt. AWT, Swing, JavaFX & SWT 1
F JTable vergrößern AWT, Swing, JavaFX & SWT 2
H JTable: Diverse NullPointer-Exceptions zur Laufzeit AWT, Swing, JavaFX & SWT 3
J Swing Werte des JTable werden nicht angezeigt AWT, Swing, JavaFX & SWT 9
T Swing JTable cellRenderer mit jpg Hintergrundfarbe lässt sich nicht ändern. AWT, Swing, JavaFX & SWT 1
HoT Einzelne Zelle in JTable Rahmen unten setzen AWT, Swing, JavaFX & SWT 24
B JTable Zellen zusammenfügen AWT, Swing, JavaFX & SWT 3
M Swing Cell Renderer für Zeilenumbruch in JTable AWT, Swing, JavaFX & SWT 0
H JTable im JSplitPane darstellen AWT, Swing, JavaFX & SWT 2
MadMax2506 Swing JTable lädt sehr lange AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9
R Swing JTable und Spaltenausrichtung AWT, Swing, JavaFX & SWT 8
G JTable füllen AWT, Swing, JavaFX & SWT 1
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
W Swing JTable Zeilenumbruch innerhalb einer Zelle AWT, Swing, JavaFX & SWT 3
J Datensatz in jTable ausgeben AWT, Swing, JavaFX & SWT 3
M Swing Automatischer Editorstart in JTable-Zelle AWT, Swing, JavaFX & SWT 5
ralfb1105 Swing JTable aktualisieren AWT, Swing, JavaFX & SWT 5
adiko01 JTable: Nur markierte Zeilen aus der Tabelle in CSV exportiern AWT, Swing, JavaFX & SWT 9
M JTable.setDefaultRenderer(...) greift nicht AWT, Swing, JavaFX & SWT 0
J JTable: Eingabe in Tabellenzelle korrigieren AWT, Swing, JavaFX & SWT 4
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
D JTable nach INSERT aktualisieren /refreshen AWT, Swing, JavaFX & SWT 1
D MySQL Daten in JTable anzeigen AWT, Swing, JavaFX & SWT 2
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
S Swing Rechteck über JTable zeichnen (per MouseListener) AWT, Swing, JavaFX & SWT 1
S Swing Mal wieder JTable Ansicht aktualisieren AWT, Swing, JavaFX & SWT 10
A JTable mit Daten füllen AWT, Swing, JavaFX & SWT 1
VfL_Freak Swing Einzelne Zeile in jTable selektieren klappt nicht AWT, Swing, JavaFX & SWT 7
N AWT jTable CellRenderer AWT, Swing, JavaFX & SWT 6
T Swing JTable valueChanged datensatz löschen AWT, Swing, JavaFX & SWT 1
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
S Jtable defaultRenderer wohin damit ? AWT, Swing, JavaFX & SWT 23
T Swing JTable / FocusListener AWT, Swing, JavaFX & SWT 0
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
L Swing JTable im Panel darstellen AWT, Swing, JavaFX & SWT 8
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
J addRow bei JTable AWT, Swing, JavaFX & SWT 6
M Jtable gibt -1 wert bei selectedRow und Column AWT, Swing, JavaFX & SWT 3
Meeresgott Swing JTable AWT, Swing, JavaFX & SWT 4
J JTable Selection Listener funktioniert nicht AWT, Swing, JavaFX & SWT 4
C Swing Daten in JTable wiedergeben per TableModel und MVC Pattern AWT, Swing, JavaFX & SWT 16
Z Swing Drag&Drop zwischen JTable und JTree AWT, Swing, JavaFX & SWT 4
Thallius JTable dynamisch Spaltenanzahl verändern AWT, Swing, JavaFX & SWT 2
Thallius JTable dynamisch laden? AWT, Swing, JavaFX & SWT 2
B Swing JTable sortieren AWT, Swing, JavaFX & SWT 2
T Swing JTable auslesen und befüllen AWT, Swing, JavaFX & SWT 8
B JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 1
J JTable und Suchlogik AWT, Swing, JavaFX & SWT 4
Viktim Swing JTable mit Tab verlassen AWT, Swing, JavaFX & SWT 1
F Swing Spaltenbreite einer Column eines JTable auslesen AWT, Swing, JavaFX & SWT 5
Viktim Swing JTable Mit Tab druch Zeilen Wechseln AWT, Swing, JavaFX & SWT 5
Thallius Warum refrehsed mein JTable nicht? AWT, Swing, JavaFX & SWT 5
Ghostman1711 Hinzufügen ausgewählter Dateinen des Filechoosers zu einem JTable AWT, Swing, JavaFX & SWT 9
S Swing JTable - Einzelne Rows einfärben AWT, Swing, JavaFX & SWT 11
M Wert einer Zelle aus JTable ziehen AWT, Swing, JavaFX & SWT 4
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
B Swing Tabelle(JTable) filtern swing GUI AWT, Swing, JavaFX & SWT 3
P JTable - bei Eingabe Selektion AWT, Swing, JavaFX & SWT 0
P Fokus auf Zelle in JTable AWT, Swing, JavaFX & SWT 1
S Swing Deselektion in JTable verhindern AWT, Swing, JavaFX & SWT 0
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
N Swing Print JTable mit AbstractTableModel AWT, Swing, JavaFX & SWT 1
Ananaskirsche Swing jTable Reihen zuviel eingefügt AWT, Swing, JavaFX & SWT 12
P im JTable die Schriftfarbe ändern AWT, Swing, JavaFX & SWT 19
T Swing JTable wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
S Dreiecke in bestimmte Zellen einer JTable AWT, Swing, JavaFX & SWT 9
LexeB4F Zelle in JTable gezielt einfärben AWT, Swing, JavaFX & SWT 4
LexeB4F JTable mehrere Zelle selektieren und inhalte Löschen.. Ideen gesucht AWT, Swing, JavaFX & SWT 1
D Swing JTable Renderer Grafikfehler AWT, Swing, JavaFX & SWT 0
K Swing JTable mit ImageIcon und Text in einer Zelle AWT, Swing, JavaFX & SWT 1
M Swing JTable GroupableHeader Background Color AWT, Swing, JavaFX & SWT 4
K Swing JTable updaten AWT, Swing, JavaFX & SWT 9
thet1983 Swing MySQL >> JTable AWT, Swing, JavaFX & SWT 5
J JTable bounds ändern durch resizing des Fensters AWT, Swing, JavaFX & SWT 9
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
O JTable linksbündig drucken (nicht der Zelleninhalt) AWT, Swing, JavaFX & SWT 2
Crazynet xls Datei in JTable AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben