Swing Spaltenüberschriften

NochNixBlicker

Bekanntes Mitglied
Java:
package einsatz;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class TriBsp extends JPanel {

   public TriBsp() {
     String rowData[][] = { { "x-MAN", "3860", "0,8762", "0,153", "198", "Ironman-Langdistanz (DTU Langdistanz)" },
         { "x-MAN", "1900", "0,7858", "0,1446", "195", "Ironman-Half" },
         { "LM", "1500", "0,867", "0,1689", "99",
             "DTU-Junioren-Triathlon lang (18-19) - DTU-Elite-Triathlon (18-19) - DTU-AK20++ kurz (20-99) - ITU-Kurzdistanz (olympische Distanz) - Jedermann" },
         { "LM", "750", "0,9109", "0,1845", "27",
             "DTU-Jugend-Triathlon A (16-17) - DTU-Junioren-Triathlon kurz (18-19) - ITU-Sprintdistanz - Schnupper" },
         { "BL", "1500", "1,0593", "0,157", "50",
             "DTU-Junioren-Triathlon lang (18-19) - DTU-Elite-Triathlon (18-19) - DTU-AK20++ kurz (20-99) - ITU-Kurzdistanz (olympische Distanz) - Jedermann" },
         { "BL", "750", "0,984", "0,2327", "38",
             "DTU-Jugend-Triathlon A (16-17) - DTU-Junioren-Triathlon kurz (18-19) - ITU-Sprintdistanz - Schnupper" },
         { "BL", "400", "1,0057", "0,1889", "22",
             "DTU-Schüler-Triathlon A (12-13) - DTU-Jugend-Triathlon B (14-15) - DTU Fitness" },
         { "BL", "200", "0,6951", "0,0855", "4", "DTU-Schüler-Triathlon B (10-11)" },
         { "BL", "100", "0,4266", "0,0741", "4", "DTU-Schüler-Triathlon C (8-9)" },
         { "BL/LL", "1500", "2,7244", "0,1614", "11",
             "DTU-Junioren-Triathlon lang (18-19) - DTU-Elite-Triathlon (18-19) - DTU-AK20++ kurz (20-99) - ITU-Kurzdistanz (olympische Distanz) - Jedermann" },
         { "BL/LL", "750", "1,2424", "0,2117", "69",
             "DTU-Jugend-Triathlon A (16-17) - DTU-Junioren-Triathlon kurz (18-19) - ITU-Sprintdistanz - Schnupper" },
         { "BL/LL", "400", "1,0225", "0,1637", "77",
             "DTU-Schüler-Triathlon A (12-13) - DTU-Jugend-Triathlon B (14-15) - DTU Fitness" },
         { "BL/LL", "200", "0,5373", "0,0514", "40", "DTU-Schüler-Triathlon B (10-11)" },
         { "LL/KL/RL", "2000", "0,8676", "0,151", "755", "DTU-AK20++ mittel (20-99)" },
         { "LL/KL/RL", "1500", "0,8115", "0,172", "2079",
             "DTU-Junioren-Triathlon lang (18-19) - DTU-Elite-Triathlon (18-19) - DTU-AK20++ kurz (20-99) - ITU-Kurzdistanz (olympische Distanz) - Jedermann" },
         { "LL/KL/RL", "750", "0,7209", "0,1731", "1672",
             "DTU-Jugend-Triathlon A (16-17) - DTU-Junioren-Triathlon kurz (18-19) - ITU-Sprintdistanz - Schnupper" },
         { "LL/KL/RL", "400", "0,3002", "0,0455", "244",
             "DTU-Schüler-Triathlon A (12-13) - DTU-Jugend-Triathlon B (14-15) - DTU Fitness" },
         { "LL/KL/RL", "200", "0,8977", "0,1992", "39", "DTU-Schüler-Triathlon B (10-11)" } };
     String columnNames[] = { "Liga", "Strecke", "mue", "sigma", "n", "Bezeichnung bzw AK" };

     DefaultTableModel model = new DefaultTableModel(rowData, columnNames) {
       public boolean isCellEditable(int row, int column) {
         return false;
       }
     };

     JTable table = new JTable(model);
     table.setBounds(5, 20, 880, 288);
     table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
     table.setColumnSelectionAllowed(false);
     table.setRowSelectionAllowed(true);

     table.addMouseListener(new MouseAdapter() {
       @Override
       public void mouseClicked(MouseEvent arg0) {
       }
     });
     table.addKeyListener(new KeyAdapter() {
       @Override
       public void keyTyped(KeyEvent arg0) {
       }
     });

     DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
     rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
     table.getColumnModel().getColumn(1).setCellRenderer(rightRenderer);

     rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
     table.getColumnModel().getColumn(2).setCellRenderer(rightRenderer);

     rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
     table.getColumnModel().getColumn(3).setCellRenderer(rightRenderer);

     rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
     table.getColumnModel().getColumn(4).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN1 = 0;
     TableColumn col = table.getColumnModel().getColumn(INDEX_COLUMN1);
     col.setPreferredWidth(35);

     final int INDEX_COLUMN2 = 1;
     TableColumn col2 = table.getColumnModel().getColumn(INDEX_COLUMN2);
     col2.setPreferredWidth(20);
     table.getColumnModel().getColumn(1).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN3 = 2;
     TableColumn col3 = table.getColumnModel().getColumn(INDEX_COLUMN3);
     col3.setPreferredWidth(25);
     table.getColumnModel().getColumn(2).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN4 = 3;
     TableColumn col4 = table.getColumnModel().getColumn(INDEX_COLUMN4);
     col4.setPreferredWidth(25);
     table.getColumnModel().getColumn(3).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN5 = 4;
     TableColumn col5 = table.getColumnModel().getColumn(INDEX_COLUMN5);
     col5.setPreferredWidth(20);
     table.getColumnModel().getColumn(4).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN6 = 5;
     TableColumn col6 = table.getColumnModel().getColumn(INDEX_COLUMN6);
     col6.setPreferredWidth(600);
     setLayout(null);

     this.add(table);

     table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);

   }
}

Was muss ich noch zusätzlich wo codieren um meine Spaltenüberschriften zu bekommen?
 

NochNixBlicker

Bekanntes Mitglied
Es geht hier NUR um die letzten vier Codezeilen. Ich will die Tabelle auf einer Karteikart (JTabbedPane) anzeigen lassen. Warum verschwindet meine Tabelle plötzlich wenn ich folgendes dazu codiere?

Java:
     JScrollPane scrollPane = new JScrollPane(table);
     table.setFillsViewportHeight(true);
     
     scrollPane.setViewportView(table);

Hier der Code der Klasse

Java:
package einsatz;

import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class TriBsp extends JPanel {

   public TriBsp() {
     String rowData[][] = { { "x-MAN", "3860", "0,8762", "0,153", "198", "Ironman-Langdistanz (DTU Langdistanz)" },
         { "x-MAN", "1900", "0,7858", "0,1446", "195", "Ironman-Half" },
         { "LM", "1500", "0,867", "0,1689", "99",
             "DTU-Junioren-Triathlon lang (18-19) - DTU-Elite-Triathlon (18-19) - DTU-AK20++ kurz (20-99) - ITU-Kurzdistanz (olympische Distanz) - Jedermann" },
         { "LM", "750", "0,9109", "0,1845", "27",
             "DTU-Jugend-Triathlon A (16-17) - DTU-Junioren-Triathlon kurz (18-19) - ITU-Sprintdistanz - Schnupper" },
         { "BL", "1500", "1,0593", "0,157", "50",
             "DTU-Junioren-Triathlon lang (18-19) - DTU-Elite-Triathlon (18-19) - DTU-AK20++ kurz (20-99) - ITU-Kurzdistanz (olympische Distanz) - Jedermann" },
         { "BL", "750", "0,984", "0,2327", "38",
             "DTU-Jugend-Triathlon A (16-17) - DTU-Junioren-Triathlon kurz (18-19) - ITU-Sprintdistanz - Schnupper" },
         { "BL", "400", "1,0057", "0,1889", "22",
             "DTU-Schüler-Triathlon A (12-13) - DTU-Jugend-Triathlon B (14-15) - DTU Fitness" },
         { "BL", "200", "0,6951", "0,0855", "4", "DTU-Schüler-Triathlon B (10-11)" },
         { "BL", "100", "0,4266", "0,0741", "4", "DTU-Schüler-Triathlon C (8-9)" },
         { "BL/LL", "1500", "2,7244", "0,1614", "11",
             "DTU-Junioren-Triathlon lang (18-19) - DTU-Elite-Triathlon (18-19) - DTU-AK20++ kurz (20-99) - ITU-Kurzdistanz (olympische Distanz) - Jedermann" },
         { "BL/LL", "750", "1,2424", "0,2117", "69",
             "DTU-Jugend-Triathlon A (16-17) - DTU-Junioren-Triathlon kurz (18-19) - ITU-Sprintdistanz - Schnupper" },
         { "BL/LL", "400", "1,0225", "0,1637", "77",
             "DTU-Schüler-Triathlon A (12-13) - DTU-Jugend-Triathlon B (14-15) - DTU Fitness" },
         { "BL/LL", "200", "0,5373", "0,0514", "40", "DTU-Schüler-Triathlon B (10-11)" },
         { "LL/KL/RL", "2000", "0,8676", "0,151", "755", "DTU-AK20++ mittel (20-99)" },
         { "LL/KL/RL", "1500", "0,8115", "0,172", "2079",
             "DTU-Junioren-Triathlon lang (18-19) - DTU-Elite-Triathlon (18-19) - DTU-AK20++ kurz (20-99) - ITU-Kurzdistanz (olympische Distanz) - Jedermann" },
         { "LL/KL/RL", "750", "0,7209", "0,1731", "1672",
             "DTU-Jugend-Triathlon A (16-17) - DTU-Junioren-Triathlon kurz (18-19) - ITU-Sprintdistanz - Schnupper" },
         { "LL/KL/RL", "400", "0,3002", "0,0455", "244",
             "DTU-Schüler-Triathlon A (12-13) - DTU-Jugend-Triathlon B (14-15) - DTU Fitness" },
         { "LL/KL/RL", "200", "0,8977", "0,1992", "39", "DTU-Schüler-Triathlon B (10-11)" } };
     String columnNames[] = { "Liga", "Strecke", "mue", "sigma", "n", "Bezeichnung bzw AK" };

     DefaultTableModel model = new DefaultTableModel(rowData, columnNames) {
       public boolean isCellEditable(int row, int column) {
         return false;
       }
     };

     JTable table = new JTable(model);
     table.setBounds(5, 20, 880, 270);
     table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
     table.setColumnSelectionAllowed(false);
     table.setRowSelectionAllowed(true);

     table.addMouseListener(new MouseAdapter() {
       @Override
       public void mouseClicked(MouseEvent arg0) {
       }
     });


     DefaultTableCellRenderer rightRenderer = new DefaultTableCellRenderer();
     
     rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
     table.getColumnModel().getColumn(1).setCellRenderer(rightRenderer);

     rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
     table.getColumnModel().getColumn(2).setCellRenderer(rightRenderer);

     rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
     table.getColumnModel().getColumn(3).setCellRenderer(rightRenderer);

     rightRenderer.setHorizontalAlignment(JLabel.RIGHT);
     table.getColumnModel().getColumn(4).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN1 = 0;
     TableColumn col = table.getColumnModel().getColumn(INDEX_COLUMN1);
     col.setPreferredWidth(35);

     final int INDEX_COLUMN2 = 1;
     TableColumn col2 = table.getColumnModel().getColumn(INDEX_COLUMN2);
     col2.setPreferredWidth(15);
     table.getColumnModel().getColumn(1).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN3 = 2;
     TableColumn col3 = table.getColumnModel().getColumn(INDEX_COLUMN3);
     col3.setPreferredWidth(25);
     table.getColumnModel().getColumn(2).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN4 = 3;
     TableColumn col4 = table.getColumnModel().getColumn(INDEX_COLUMN4);
     col4.setPreferredWidth(25);
     table.getColumnModel().getColumn(3).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN5 = 4;
     TableColumn col5 = table.getColumnModel().getColumn(INDEX_COLUMN5);
     col5.setPreferredWidth(10);
     table.getColumnModel().getColumn(4).setCellRenderer(rightRenderer);

     final int INDEX_COLUMN6 = 5;
     TableColumn col6 = table.getColumnModel().getColumn(INDEX_COLUMN6);
     col6.setPreferredWidth(600);
     setLayout(null);

     JScrollPane scrollPane = new JScrollPane(table);
     table.setFillsViewportHeight(true);
     
     scrollPane.setViewportView(table);

     table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);

   }
}
 

NochNixBlicker

Bekanntes Mitglied
so gehts nicht
Java:
    JScrollPane scrollPane = new JScrollPane(table);
     this.add(scrollPane);
     table.setFillsViewportHeight(true);
     scrollPane.setViewportView(table);
wie dann?
 

Meniskusschaden

Top Contributor
Der Tipp von @mrBrown löst das Problem, dass dein ScrollPane nicht angezeigt wird. Es gibt aber wahrscheinlich noch weitere Fehler, beispielsweise, dass es mit einer Höhe und Breite von 0 Pixeln dargestellt wird. Du solltest einen geeigneten Layout-Manager für dein Panel einsetzen.
 

NochNixBlicker

Bekanntes Mitglied
Entschuldigt bitte, ich habe wiedermal vergessen die Konsole zu Kopieren:

Java:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: com/jgoodies/common/base/Preconditions
   at com.jgoodies.forms.layout.FormSpec.<init>(FormSpec.java:179)
   at com.jgoodies.forms.layout.ColumnSpec.<init>(ColumnSpec.java:147)
   at com.jgoodies.forms.layout.FormSpecs.<clinit>(FormSpecs.java:62)
   at GIzEH.initComponents(GIzEH.java:110)
   at GIzEH.<init>(GIzEH.java:32)
   at GIzEH$1.run(GIzEH.java:149)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$500(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.jgoodies.common.base.Preconditions
   at java.net.URLClassLoader.findClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
   at java.lang.ClassLoader.loadClass(Unknown Source)
   ... 20 more
 

NochNixBlicker

Bekanntes Mitglied
Danke!

Also hier referenziere ich die Registerkarte auf der das Objekt erscheinen soll:
Java:
    JScrollPane scrollPane = new JScrollPane(table);
     scrollPane.setBounds(0, 0, 0, 0);
     this.add(scrollPane);
     table.setFillsViewportHeight(true);
     scrollPane.setViewportView(table);
Tuts aber nicht!
 

NochNixBlicker

Bekanntes Mitglied
Jetzt zeigt er die Tabelle an. Aber an welcher Stelle muss ich jetzt die Spaltenbreiten ändern, weil die Breiten, die ich in der JTable übergeben habe stimmen hinten und vorne nicht. Oder werden jetzt die Breiten aus JTanble angezeigt?
 

Ähnliche Java Themen


Oben