Warum ist die Spalte weg?

NochNixBlicker

Bekanntes Mitglied
Die Spalte 'Bezeichnung bzw. AK' wird nicht angezeigt, warum? Oder bin ich noch nicht wirklich wach?

Java:
public class TriBsp extends JPanel {

   /**
    *
    */
   private static final long serialVersionUID = -6671920676546497516L;

   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);
    JTable table = new JTable(model);
    table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

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

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

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

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

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

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

    final int INDEX_COLUMN6 = 5;
    TableColumn col6 = table.getColumnModel().getColumn(INDEX_COLUMN6);
    col6.setPreferredWidth(700);

    this.add(table);
     
     table.setBounds(5, 20, 900, 270);
     table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
     table.setColumnSelectionAllowed(false);
     table.setRowSelectionAllowed(true);

     table.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
     
     JScrollPane scrollPane = new JScrollPane(table);
     scrollPane.setBounds(10, 10, 1038, 311);

     this.add(scrollPane);
     table.setFillsViewportHeight(true);
     scrollPane.setViewportView(table);
   }
 

Saheeda

Top Contributor
@NochNixBlicker

Kleiner Tipp: Wenn das mehr wird, als nur n bisschen Rumgespiele, solltest du überlegen, die Daten in einer Datenbank oder einer Datei abzulegen. Das macht beim Einrichten erstmal ein etwas mehr Arbeit, hilft aber auf Dauer, alles sauber und lesbar zu gestalten.
 

Harry Kane

Top Contributor
Noch'n paar weitere Kommentare:
1. Packe die Daten aus deinem String[][] array in Objekte. Die einzelnen Arrays scheinen so etwas wie Veranstaltungsdaten für Sportevents darzustellen. Aus dem String[][] würde dann z. B. ein SportEvent[].
2. Du setzt kein Layout in der TriBsp-Klasse. Deshalb müsste ein FlowLayout verwendet werden (der default LayoutManager eines JPanels). Und dann sind die Aufrude von setBounds() wirkungslos.
3. Du addest die table direkt dem JPanel und verwendest sie auch als viewport der JScrollPane, die dann auch dem TriBsp hinzugefügt wird. Dieses Vorgehen erschliesst sich mit überhaupt nicht.
 

Saheeda

Top Contributor
Dein Objekt wäre dann quasi die zweite Dimension. Du müsstest dir nicht mehr merken, in welchem Feld welche Eigenschaft steht, sonst könntest direkt auf dem Objekt so was wie sportevent.getTitle() aufrufen.
Und ja, in dem Objekt kannst du beliebig viele verschiedene Datentypen kapseln.
 

Harry Kane

Top Contributor
Geht dann auch SportEvent[][]? Mit verschiedenen Datentypen der Spalten, ich meine ja?
Bei einem SportEvent[][] hast du keine verschiedenen Datentypen in den Spalten.
Saheeda und ich meinen so etwas:
Java:
public class PersonTableDemo {

  public static void main(String[] args) {
  JFrame frame = new JFrame("Person Table");
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  CustomerTableModel ctm = new CustomerTableModel();
  ctm.addCustomer(new Customer(48, "Irgend Jemand Reiches", true));
  ctm.addCustomer(new Customer(4, "Klein Fritzchen", false));
  ctm.addCustomer(new Customer(32, "Chef vom Dienst", true));
  ctm.addCustomer(new Customer(53, "Arme Socke", false));
  frame.getContentPane().add(new JScrollPane(new JTable(ctm)));
  frame.pack();
  frame.setVisible(true);

  }

  static class CustomerTableModel extends AbstractTableModel {

  private ArrayList<Customer> customers = new ArrayList<Customer>();

  private String[] columns = new String[]{"Name", "Alter", "Guter Kunde ?"};

  public void addCustomer(Customer c) {
  customers.add(c);
  super.fireTableDataChanged();
  }

  public int getRowCount() {
  return customers.size();
  }

  public int getColumnCount() {
  return columns.length;
  }

  public boolean isCellEditable(int row, int column) {
  return true;
  }

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

  public Class getColumnClass(int column) {
  if (column == 2) {
  return Boolean.class;
  }
  return super.getColumnClass(column);
  }

  public Object getValueAt(int row, int column) {
  Customer c = customers.get(row);
  switch (column) {
  case 0:
  return c.getName();
  case 1:
  return c.getAge();
  case 2:
  return c.isGoodCustomer();
  default:
  return null;
  }
  }

  public void setValueAt(Object o, int row, int column) {
  Customer c = customers.get(row);
  switch (column) {
  case 0:
  c.setName(o.toString());
  break;
  case 1:
  int age = 0;
  if (o instanceof Number) {
  age = ((Number) o).intValue();
  } else {
  age = Integer.parseInt(o.toString());
  }
  c.setAge(age);
  break;
  case 2:
  boolean good = false;
  if (o instanceof Boolean) {
  good = ((Boolean) o).booleanValue();
  } else {
  good = Boolean.parseBoolean(o.toString());
  }
  c.setGoodCustomer(good);
  }
  }
  }

  static class Customer {

  private int age;
  private String name;
  private boolean goodCustomer;

  public Customer(int age, String name, boolean goodCustomer) {
  this.age = age;
  this.name = name;
  this.goodCustomer = goodCustomer;
  }

  public void setAge(int age) {
  System.out.println("Age changed to " + String.valueOf(age));
  this.age = age;
  }

  public int getAge() {
  return this.age;
  }

  public void setName(String name) {
  System.out.println("Name changed to " + name);
  this.name = name;
  }

  public String getName() {
  return this.name;
  }

  public void setGoodCustomer(boolean g) {
  System.out.println("Goodness changed to " + g);
  this.goodCustomer = g;
  }

  public boolean isGoodCustomer() {
  return this.goodCustomer;
  }

  }
}
 

NochNixBlicker

Bekanntes Mitglied
Hab es probiert, aber irgendwo ist ein Fehler drin?

Java:
package einsatz;

import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;

public class TriSdwBsp {

   public static void main(String[] args) {
     JFrame frame = new JFrame("Richtwerte für sigma und mue");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setLocation(200,100);
     WettkampfTableModel wktm = new WettkampfTableModel();
     wktm.addWettkampf(new Wettkampf(1500, 48, "LL", "w35", 0.2569, 0.0257));
     wktm.addWettkampf(new Wettkampf(1500, 4, "LL", "m50", 0.0689, 6.4879));
     wktm.addWettkampf(new Wettkampf(3800, 32, "BL", "w30", 0.8931, 1.4863));
     wktm.addWettkampf(new Wettkampf(3800, 53, "BL", "m20", 0.4659, 0.0256));
     frame.getContentPane().add(new JScrollPane(new JTable(wktm)));
     frame.pack();
     frame.setVisible(true);

   }

   static class WettkampfTableModel extends AbstractTableModel {

     private ArrayList<Wettkampf> wettkaempfe = new ArrayList<Wettkampf>();

     private String[] columns = new String[] { "Strecke", "n", "Liga",  "Bezeichnung bzw AK", "mue", "sigma" };

     public void addWettkampf(Wettkampf c) {
       wettkaempfe.add(c);
       super.fireTableDataChanged();
     }

     public int getRowCount() {
       return wettkaempfe.size();
     }

     public int getColumnCount() {
       return columns.length;
     }

     public boolean isCellEditable(int row, int column) {
       return false;
     }

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

     public Class getColumnClass(int column) {
       if (column == 2) {
         return Boolean.class;
       }
       return super.getColumnClass(column);
     }

     public Object getValueAt(int row, int column) {
       Wettkampf wk = wettkaempfe.get(row);
       switch (column) {
       case 1:
         return wk.getStrecke();
       case 2:
         return wk.getSigma();
       case 3:
         return wk.getMue();         
       default:
         return null;
       }
     }
   }

   static class Wettkampf {

     private int strecke,  n;
     private String liga, bezbzwak;
     private Double mue, sigma;

     public Wettkampf(int strecke, int n, String liga, String bezbzwak, Double mue, Double sigma) {
       this.strecke = strecke;
       this.liga = liga;
       this.mue = mue;
     }

     public int getStrecke() {
       return this.strecke;
     }


     public String getSigma() {
       return this.liga;
     }

     public Double getMue() {
       return this.mue;
     }

   }
}
 

NochNixBlicker

Bekanntes Mitglied
Entschuldige bitte, aber mein Mutter quält mich gerade mit so wichtigen Dingen, wie saugen. Von daher war ich nicht ganz bei der Sache:

Java:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Boolean
   at javax.swing.JTable$BooleanRenderer.getTableCellRendererComponent(Unknown Source)
   at javax.swing.JTable.prepareRenderer(Unknown Source)
   at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
   at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
   at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
   at javax.swing.plaf.ComponentUI.update(Unknown Source)
   at javax.swing.JComponent.paintComponent(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JViewport.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at javax.swing.JLayeredPane.paint(Unknown Source)
   at javax.swing.JComponent.paintChildren(Unknown Source)
   at javax.swing.JComponent.paintToOffscreen(Unknown Source)
   at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
   at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
   at javax.swing.RepaintManager.paint(Unknown Source)
   at javax.swing.JComponent.paint(Unknown Source)
   at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
   at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
   at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
   at java.awt.Container.paint(Unknown Source)
   at java.awt.Window.paint(Unknown Source)
   at javax.swing.RepaintManager$4.run(Unknown Source)
   at javax.swing.RepaintManager$4.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
   at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
   at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
   at javax.swing.RepaintManager.access$1200(Unknown Source)
   at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
   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)
 

Joose

Top Contributor
Die Fehlermeldung sagt doch schon alles aus. Es wird versucht einen String in ein Boolean umzuwandeln, was aber nicht klappt.

In deinem Code hast du folgenden Code:
Java:
........
     WettkampfTableModel wktm = new WettkampfTableModel();
     wktm.addWettkampf(new Wettkampf(1500, 48, "LL", "w35", 0.2569, 0.0257));
     wktm.addWettkampf(new Wettkampf(1500, 4, "LL", "m50", 0.0689, 6.4879));
     wktm.addWettkampf(new Wettkampf(3800, 32, "BL", "w30", 0.8931, 1.4863));
     wktm.addWettkampf(new Wettkampf(3800, 53, "BL", "m20", 0.4659, 0.0256));

..........

     public Class getColumnClass(int column) {
       if (column == 2) {
         return Boolean.class;
       }
       return super.getColumnClass(column);
     }

..........
In der 2.Spalte sollen sich boolean Werte befinden -> sprich true oder false
Bei deinem Model oben sehen ich keine Daten welche einem Boolean entsprechen würden. Was soll deiner Meinung nach in ein Boolean umgewandelt werden?
 

NochNixBlicker

Bekanntes Mitglied
Jetzt wo du es sagst, fällt es mir wie Schuppen von den Augen. Harry hatte für mich ja ein Beispiel geproggt, da habe ich dann die Passage nicht gelöscht. Nich wirklich intelligent - reicht es einfach diese Klasse zu löschen?
 

NochNixBlicker

Bekanntes Mitglied
Hab jetz das aber warum wird mir n überall als 0, die Bezeichnung und sigma gar nicht

Java:
package einsatz;

import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;

public class TriSdwBsp {

   public static void main(String[] args) {
     JFrame frame = new JFrame("Richtwerte für sigma und mue");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setLocation(200,100);
     WettkampfTableModel wktm = new WettkampfTableModel();
     wktm.addWettkampf(new Wettkampf(1500, 48, "LL", "w35", 0.2569, 0.0257));
     wktm.addWettkampf(new Wettkampf(1500, 4, "LL", "m50", 0.0689, 6.4879));
     wktm.addWettkampf(new Wettkampf(3800, 32, "BL", "w30", 0.8931, 1.4863));
     wktm.addWettkampf(new Wettkampf(3800, 53, "BL", "m20", 0.4659, 0.0256));
     frame.getContentPane().add(new JScrollPane(new JTable(wktm)));
     frame.pack();
     frame.setVisible(true);

   }

   static class WettkampfTableModel extends AbstractTableModel {

     /**
      *
      */
     private static final long serialVersionUID = 1L;

     private ArrayList<Wettkampf> wettkaempfe = new ArrayList<Wettkampf>();

     private String[] columns = new String[] { "Strecke", "n", "Liga",  "Bezeichnung bzw AK", "mue", "sigma" };

     public void addWettkampf(Wettkampf c) {
       wettkaempfe.add(c);
       super.fireTableDataChanged();
     }

     public int getRowCount() {
       return wettkaempfe.size();
     }

     public int getColumnCount() {
       return columns.length;
     }

     public boolean isCellEditable(int row, int column) {
       return false;
     }

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

     public Object getValueAt(int row, int column) {
       Wettkampf wk = wettkaempfe.get(row);
       switch (column) {
       case 0:
         return wk.getStrecke();
       case 1:
         return wk.n;
       case 2:
         return wk.getLiga();
       case 3:
         return wk.getBezbzwak();
       case 4:
         return wk.getMue();
       case 5:
         return wk.getSigma();
       default:
         return null;
       }
     }
   }

   static class Wettkampf {

     private int strecke,  n;
     private String liga, bezbzwak;
     private Double mue, sigma;

     public Wettkampf(int strecke, int n, String liga, String bezbzwak, Double mue, Double sigma) {
       this.strecke = strecke;
       this.liga = liga;
       this.mue = mue;
     }

     public int getStrecke() {
       return this.strecke;
     }

     public int getN(){
       return this.n;
     }

     public String getLiga(){
       return this.liga;
     }
     
     public String getBezbzwak(){
       return this.bezbzwak;
     }
     public Double getSigma() {
       return this.sigma;
     }

     public Double getMue() {
       return this.mue;
     }
   }
}
[]
 

Joose

Top Contributor
Hab jetz das aber warum wird mir n überall als 0, die Bezeichnung und sigma gar nicht
"gar nicht .." was? ;)

Weil du es so geschrieben bzw. zusammenkopiert hast
Java:
   static class Wettkampf {

     private int strecke,  n;
     private String liga, bezbzwak;
     private Double mue, sigma;

     public Wettkampf(int strecke, int n, String liga, String bezbzwak, Double mue, Double sigma) {
       this.strecke = strecke;
       this.liga = liga;
       this.mue = mue;
     }
.....
Welchen Wert bekommt den das Instanzattribut "n" gesetzt?
 

NochNixBlicker

Bekanntes Mitglied
Jetzt hab ich doch noch ne Frag, warum will Eclipse wenn ich die App laufen lassen, irgendwas mit Ameisen (ants)?

Java:
import java.awt.EventQueue;
import java.awt.event.*;
import javax.swing.*;
import einsatz.Tri;

public class GIzEH implements ActionListener {

   private JFrame frmGizeh;

   /**
    * Launch the application.
    */
   public static void main(String[] args) {
     EventQueue.invokeLater(new Runnable() {
       public void run() {
         try {
           GIzEH window = new GIzEH();
           window.frmGizeh.setVisible(true);
           // ClassLoader cl = this.getClass().getClassLoader();
         } catch (Exception e) {
           e.printStackTrace();
         }
       }
     });
   }

   /**
    * Create the application.
    */
   public GIzEH() {
     initComponents();
   }

   private void initComponents() // Creating and initializing components
   {
     frmGizeh = new JFrame();
     frmGizeh.setTitle("GIzEH 3.0");

     // frmGizeh.setIconImage(Toolkit.getDefaultToolkit().getImage(
     // CIzEH.class.getResource("/res/GIzEH.ico")));
     frmGizeh.setBounds(100, 100, 670, 368);
     frmGizeh.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

     JMenuBar menuBar = new JMenuBar();
     frmGizeh.setJMenuBar(menuBar);

     // Datei

     JMenu mndatei = new JMenu("Datei");
     menuBar.add(mndatei);

     JMenuItem mntmUpdateErzwingen = new JMenuItem("Update erzwingen");
     mndatei.add(mntmUpdateErzwingen);
     mntmUpdateErzwingen.addActionListener(this);

     JMenuItem mntmEinstellungen = new JMenuItem("Einstellungen");
     mndatei.add(mntmEinstellungen);
     mntmEinstellungen.addActionListener(this);

     JMenuItem mntmBenutzerwechsel = new JMenuItem("Benutzerwechsel");
     mndatei.add(mntmBenutzerwechsel);
     mntmBenutzerwechsel.addActionListener(this);

     mndatei.addSeparator();

     JMenuItem mntmBeenden = new JMenuItem("Beenden");
     mntmBeenden.addActionListener(this);
     mndatei.add(mntmBeenden);

     // Einsatz

     JMenu mnEinsatz = new JMenu("Einsatz");
     menuBar.add(mnEinsatz);

     // *############################################################*/
     JMenuItem mntmSichern = new JMenuItem("Sichern");
     mnEinsatz.add(mntmSichern);
     mntmSichern.addActionListener(this);
     mntmSichern.setActionCommand("Sichern");

     JMenuItem mntmRetten = new JMenuItem("Retten");
     mnEinsatz.add(mntmRetten);
     mntmRetten.addActionListener(this);
     mntmRetten.setActionCommand("Retten");

     // *############################################################*/

     JMenuItem mntmBergen = new JMenuItem("Bergen");
     mnEinsatz.add(mntmBergen);
     mntmBergen.addActionListener(this);

     // ?

     JMenu mn = new JMenu("?");
     menuBar.add(mn);

     JMenuItem mntmInhaltUndIndex = new JMenuItem("Inhalt und Index");
     mn.add(mntmInhaltUndIndex);
     mntmInhaltUndIndex.addActionListener(this);

     JMenuItem mntmVerursacher = new JMenuItem("Verursacher");
     mn.add(mntmVerursacher);
     mntmVerursacher.addActionListener(this);

     JPanel panel = new JPanel();

     panel.setLayout(null);
   }

   @Override
   public void actionPerformed(ActionEvent e) {
     if (e.getActionCommand().equals("Sichern")) {
       System.out.println("Sichern wurde gedrückt");
       Tri dialog = new Tri();
     } else if (e.getActionCommand().equals("Retten")) {
       System.out.println("Retten wurde gedrückt");
     } else if (e.getActionCommand().equals("Bergen")) {
       System.out.println("Bergen wurde gedrückt");
     } else if (e.getActionCommand().equals("Beenden")) {
       exit();
     }
   }

   public void exit() {
     int result = JOptionPane.showConfirmDialog(null, "Möchten Sie das Programm beenden?", "Programm beenden",
         JOptionPane.YES_NO_OPTION);
     switch (result) {
     case JOptionPane.YES_OPTION:
       System.exit(0); // Aktion(en) bei Klicken auf den "Ja-Button"
     }
   }
}

Java:
package einsatz;

import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;

public class TriSdwBsp {

   public static void main(String[] args) {
     JFrame frame = new JFrame("Richtwerte für sigma und mue");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setLocation(200, 100);
     WettkampfTableModel wktm = new WettkampfTableModel();
     wktm.addWettkampf(new Wettkampf(1500, 48, "LL", "olympisch", 0.2569, 0.0257));
     wktm.addWettkampf(new Wettkampf(1500, 4, "LL", "olympisch", 0.0689, 6.4879));
     wktm.addWettkampf(new Wettkampf(3800, 32, "BL", "lang", 0.8931, 1.4863));
     wktm.addWettkampf(new Wettkampf(3800, 53, "BL", "lang", 0.4659, 0.0256));
     frame.getContentPane().add(new JScrollPane(new JTable(wktm)));
     frame.pack();
     frame.setVisible(true);

   }

   static class WettkampfTableModel extends AbstractTableModel {

     /**
      *
      */
     private static final long serialVersionUID = 1L;

     private ArrayList<Wettkampf> wettkaempfe = new ArrayList<Wettkampf>();

     private String[] columns = new String[] { "Strecke", "n", "Liga", "Bezeichnung", "mue", "sigma" };

     public void addWettkampf(Wettkampf c) {
       wettkaempfe.add(c);
       super.fireTableDataChanged();
     }

     public int getRowCount() {
       return wettkaempfe.size();
     }

     public int getColumnCount() {
       return columns.length;
     }

     public boolean isCellEditable(int row, int column) {
       return false;
     }

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

     public Object getValueAt(int row, int column) {
       Wettkampf wk = wettkaempfe.get(row);
       switch (column) {
       case 0:
         return wk.getStrecke();
       case 1:
         return wk.n;
       case 2:
         return wk.getLiga();
       case 3:
         return wk.getBezbzwak();
       case 4:
         return wk.getMue();
       case 5:
         return wk.getSigma();
       default:
         return null;
       }
     }
   }

   static class Wettkampf {

     private int strecke, n;
     private String liga, bezbzwak;
     private Double mue, sigma;

     public Wettkampf(int strecke, int n, String liga, String bezbzwak, Double mue, Double sigma) {
       this.strecke = strecke;
       this.liga = liga;
       this.mue = mue;
       this.sigma = sigma;
       this.bezbzwak = bezbzwak;
       this.n = n;
     }

     public int getStrecke() {
       return this.strecke;
     }

     public int getN() {
       return this.n;
     }

     public String getLiga() {
       return this.liga;
     }

     public String getBezbzwak() {
       return this.bezbzwak;
     }

     public Double getSigma() {
       return this.sigma;
     }

     public Double getMue() {
       return this.mue;
     }
   }
}
 

NochNixBlicker

Bekanntes Mitglied
Und wo packe ich das hier in der Code rein?
Und warum werden die Zahlen nicht einfach rechts ausgerichtet?

Java:
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;

public class TriSdwBsp {

   public static void main(String[] args) {
     JFrame frame = new JFrame("Richtwerte für sigma und mue");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setLocation(200, 100);
     WettkampfTableModel wktm = new WettkampfTableModel();
     wktm.addWettkampf(new Wettkampf(1500, 48, "LL", "olympisch", 0.2569, 0.0257));
     wktm.addWettkampf(new Wettkampf(1500, 4, "LL", "olympisch", 0.0689, 6.4879));
     wktm.addWettkampf(new Wettkampf(3800, 32, "BL", "lang", 0.8931, 1.4863));
     wktm.addWettkampf(new Wettkampf(3800, 53, "BL", "lang", 0.4659, 0.0256));
     frame.getContentPane().add(new JScrollPane(new JTable(wktm)));
     frame.pack();
     frame.setVisible(true);
   }

   static class WettkampfTableModel extends AbstractTableModel {

     /**
      *
      */
     private static final long serialVersionUID = 1L;

     private ArrayList<Wettkampf> wettkaempfe = new ArrayList<Wettkampf>();

     private String[] columns = new String[] { "Strecke", "n", "Liga", "Bezeichnung", "mue", "sigma" };

     public void addWettkampf(Wettkampf wk) {
       wettkaempfe.add(wk);
       super.fireTableDataChanged();
     }

     public int getRowCount() {
       return wettkaempfe.size();
     }

     public int getColumnCount() {
       return columns.length;
     }

     public boolean isCellEditable(int row, int column) {
       return false;
     }

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

     public Object getValueAt(int row, int column) {
       Wettkampf wk = wettkaempfe.get(row);
       switch (column) {
       case 0:
         return wk.getStrecke();
       case 1:
         return wk.n;
       case 2:
         return wk.getLiga();
       case 3:
         return wk.getBezbzwak();
       case 4:
         return wk.getMue();
       case 5:
         return wk.getSigma();
       default:
         return null;
       }
     }
   }

   static class Wettkampf {

     private int strecke, n;
     private String liga, bezbzwak;
     private Double mue, sigma;

     public Wettkampf(int strecke, int n, String liga, String bezbzwak, Double mue, Double sigma) {
       this.strecke = strecke;
       this.liga = liga;
       this.mue = mue;
       this.sigma = sigma;
       this.bezbzwak = bezbzwak;
       this.n = n;
     }

     public int getStrecke() {
       return this.strecke;
     }

     public int getN() {
       return this.n;
     }

     public String getLiga() {
       return this.liga;
     }

     public String getBezbzwak() {
       return this.bezbzwak;
     }

     public Double getSigma() {
       return this.sigma;
     }

     public Double getMue() {
       return this.mue;
     }
   }
}

[/]
 

Nuiton

Bekanntes Mitglied
Du sollst das mal versuchen alleine hinzubekommen. In deinem Code erstellst du direkt eine neue Tabelle ohne irgendeine Referenz zu der Tabelle zu haben - das ist schlechter Stil. Ich meine damit diese Line:
Java:
frame.getContentPane().add(newJScrollPane(new JTable(wktm)));
Wie du siehst, kann dein JTable kann ueberhaupt nicht erweitert werden, weil du direkt einen erstellst, i.e. new JTable(...).
Am besten legst du deine Tabelle so an, dass du auch immer wieder darauf zugreifen kannst, wie z.B.
Java:
JTable myTable = new JTable(wktm);
Das einzige, was du jetzt nocht benoetigst, ist jetzt die Breite deiner Spalten. Wenn du z.B. die erste Spalte (bzw. Spalte '0') in einer bestimmten Breite moechtest, wie z.B. 300 Pixel, schreibst du folgendes:
Java:
 myTable.getColumnModel().getColumn(0).setPreferredWidth(300);
Den Rest musst du schon alleine hinbekommen.

Um den Text in deinen Spalten "rechts" anzuzeigen, benutzt du am besten einen TableCellRenderer.
 

NochNixBlicker

Bekanntes Mitglied
Ich dachte jetzt mit diesem Code erzeuge ich zuerst ein Fenster...
Java:
  public static void main(String[] args) {
     JFrame frame = new JFrame("Richtwerte für sigma und mue");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setLocation(200, 100);
...dann werden die Daten gemäß TableModel geschrieben
Java:
     WettkampfTableModel wktm = new WettkampfTableModel();
     wktm.addWettkampf(new Wettkampf(1500, 48, "LL", "olympisch", 0.2569, 0.0257));
     wktm.addWettkampf(new Wettkampf(1500, 4, "LL", "olympisch", 0.0689, 6.4879));
     wktm.addWettkampf(new Wettkampf(3800, 32, "BL", "lang", 0.8931, 1.4863));
     wktm.addWettkampf(new Wettkampf(3800, 53, "BL", "lang", 0.4659, 0.0256));
...und dann wird die Tabelle in ein ScrollPane gepackt und das Fenster wird sichtbar gemacht
Java:
     frame.getContentPane().add(new JScrollPane(new JTable(wktm)));
     frame.pack();
     frame.setVisible(true);
   }

Lag ich da falsch?
 

Joose

Top Contributor
Nein das passiert ja auch oder?

Das Problem du willst nun noch die Weite/Breite von Spalten usw. ändern ... dazu brauchst du aber Zugriff auf das JTable Objekt.
Welchen du aber nicht hast, da du die Referenz darauf in keiner Variable gespeichert hast. Mach es doch wie Nuiton schon gezeigt hat ;)
 

NochNixBlicker

Bekanntes Mitglied
Nein, leider nicht! Hier mal der gesamte Code:
Java:
package einsatz;

import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableColumn;

public class TriSdwBsp {

   public static void main(String[] args) {
     JFrame frame = new JFrame("Richtwerte für sigma und mue");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setLocation(200, 100);
Ich dachte dass ich hier NUR das Modell für die Tabelle erstelle und sie mit Daten fülle
Java:
     WettkampfTableModel wktm = new WettkampfTableModel();
     wktm.addWettkampf(new Wettkampf(1500, 48, "LL", "olympisch", 0.2569, 0.0257));
     wktm.addWettkampf(new Wettkampf(1500, 4, "LL", "olympisch", 0.0689, 6.4879));
     wktm.addWettkampf(new Wettkampf(3800, 32, "BL", "lang", 0.8931, 1.4863));
     wktm.addWettkampf(new Wettkampf(3800, 53, "BL", "lang", 0.4659, 0.0256));
    
     frame.getContentPane().add(new JScrollPane(new JTable(wktm)));
Habe ich jetzt zwei Objekte namens wktm?
Java:
     frame.pack();
     frame.setVisible(true);
   }

   static class WettkampfTableModel extends AbstractTableModel {

     /**
      *
      */
     private static final long serialVersionUID = 1L;

     private ArrayList<Wettkampf> wettkaempfe = new ArrayList<Wettkampf>();

     private String[] columns = new String[] { "Strecke", "n", "Liga", "Bezeichnung", "mue", "sigma" };

     public void addWettkampf(Wettkampf wk) {
       wettkaempfe.add(wk);
       super.fireTableDataChanged();
     }

     public int getRowCount() {
       return wettkaempfe.size();
     }

     public int getColumnCount() {
       return columns.length;
     }

     public boolean isCellEditable(int row, int column) {
       return false;
     }

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

     public Object getValueAt(int row, int column) {
       Wettkampf wk = wettkaempfe.get(row);
       switch (column) {
       case 0:
         return wk.getStrecke();
       case 1:
         return wk.n;
       case 2:
         return wk.getLiga();
       case 3:
         return wk.getBezbzwak();
       case 4:
         return wk.getMue();
       case 5:
         return wk.getSigma();
       default:
         return null;
       }
     }
   }

   static class Wettkampf {

     private int strecke, n;
     private String liga, bezbzwak;
     private Double mue, sigma;

     public Wettkampf(int strecke, int n, String liga, String bezbzwak, Double mue, Double sigma) {
       this.strecke = strecke;
       this.liga = liga;
       this.mue = mue;
       this.sigma = sigma;
       this.bezbzwak = bezbzwak;
       this.n = n;
     }

     public int getStrecke() {
       return this.strecke;
     }

     public int getN() {
       return this.n;
     }

     public String getLiga() {
       return this.liga;
     }

     public String getBezbzwak() {
       return this.bezbzwak;
     }

     public Double getSigma() {
       return this.sigma;
     }

     public Double getMue() {
       return this.mue;
     }
   }
}
 

NochNixBlicker

Bekanntes Mitglied
Das ganze ist irgedwie verwirrend, warum brauch ich ein Referenz für die Tabelle und für das TableModel, also wie die Tabelle aussieht? Warum sind dann die Eigenschaften, wie Spaltenbreiten nicht abrufbar? Wo und wie muss ich das TableObjekt referenzieren?

Ich dachte dass ich in folgendem Abschnit mit wk.spaltenbreite darauf zugreifen könne
Java:
    public Object getValueAt(int row, int column) {
       Wettkampf wk = wettkaempfe.get(row);
       switch (column) {
       case 0:
         return wk.getStrecke();
       case 1:
         return wk.n;
       case 2:
         return wk.getLiga();
       case 3:
         return wk.getBezbzwak();
       case 4:
         return wk.getMue();
       case 5:
         return wk.getSigma();
       default:
         return null;
       }
     }
 
Zuletzt bearbeitet:

Joose

Top Contributor
warum brauch ich ein Referenz für die Tabelle und für das TableModel, also wie die Tabelle aussieht?
Das TableModel stellt dir die Daten bereit mehr nicht, das JTable Objekt ist für die Anzeige der Daten zuständig.

Warum sind dann die Eigenschaften, wie Spaltenbreiten nicht abrufbar? Wo und wie muss ich das TableObjekt referenzieren?
Das hat dir Nuiton oben schon gezeigt. Eine extra Variable dafür erstellen ....

Ich dachte dass ich in folgendem Abschnit mit wk.spaltenbreite darauf zugreifen könne
Java:
    public Object getValueAt(int row, int column) {
       Wettkampf wk = wettkaempfe.get(row);
       switch (column) {
       case 0:
         return wk.getStrecke();....
Wettkampf ist doch nur die Modelklasse zum Daten halten und hat nichts mit der Anzeige zu tun!
 

Meniskusschaden

Top Contributor
Habe ich jetzt zwei Objekte namens wktm?
Wie kommst du auf zwei? Wo glaubst du, das zweite wktm-Objekt zu erstellen? Ich sehe es nicht.

Das ganze ist irgedwie verwirrend, warum brauch ich ein Referenz für die Tabelle und für das TableModel, also wie die Tabelle aussieht?
Nein, das TableModel beschreibt gerade nicht, wie die Tabelle aussieht, sondern repräsentiert die Daten. Es geht gerade, Daten und Visualisierung voneinander zu trennen.

Ich dachte dass ich in folgendem Abschnit mit wk.spaltenbreite darauf zugreifen könne
wk ist ein Objekt vom Typ Wettkampf. Das weiß überhaupt nichts über Spalten.

Warum machst du es nicht einfach wie in deinem Eröffnungspost? Da wusstest du doch noch, wie man die Spaltenbreite setzt. Mit der Referenz auf die JTable kommst du an alles nötige ran.
 

NochNixBlicker

Bekanntes Mitglied
Ich wurde durch #3 und #5 dann völlig verwirrt, wahrscheinlich habe ich sie falsch interpretiert. Und der Grund fürs komplette ändern war dann #8. Jetzt peile ich gar nichts mehr und bin frustriert.

Java:
public class PersonTableDemo {

  public static void main(String[] args) {
  JFrame frame = new JFrame("Person Table");
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  CustomerTableModel ctm = new CustomerTableModel();
  ctm.addCustomer(new Customer(48, "Irgend Jemand Reiches", true));
  ctm.addCustomer(new Customer(4, "Klein Fritzchen", false));
  ctm.addCustomer(new Customer(32, "Chef vom Dienst", true));
  ctm.addCustomer(new Customer(53, "Arme Socke", false));
  frame.getContentPane().add(new JScrollPane(new JTable(ctm)));
  frame.pack();
  frame.setVisible(true);

  }

  static class CustomerTableModel extends AbstractTableModel {

  private ArrayList<Customer> customers = new ArrayList<Customer>();

  private String[] columns = new String[]{"Name", "Alter", "Guter Kunde ?"};

  public void addCustomer(Customer c) {
  customers.add(c);
  super.fireTableDataChanged();
  }

  public int getRowCount() {
  return customers.size();
  }

  public int getColumnCount() {
  return columns.length;
  }

  public boolean isCellEditable(int row, int column) {
  return true;
  }

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

  public Class getColumnClass(int column) {
  if (column == 2) {
  return Boolean.class;
  }
  return super.getColumnClass(column);
  }

  public Object getValueAt(int row, int column) {
  Customer c = customers.get(row);
  switch (column) {
  case 0:
  return c.getName();
  case 1:
  return c.getAge();
  case 2:
  return c.isGoodCustomer();
  default:
  return null;
  }
  }

  public void setValueAt(Object o, int row, int column) {
  Customer c = customers.get(row);
  switch (column) {
  case 0:
  c.setName(o.toString());
  break;
  case 1:
  int age = 0;
  if (o instanceof Number) {
  age = ((Number) o).intValue();
  } else {
  age = Integer.parseInt(o.toString());
  }
  c.setAge(age);
  break;
  case 2:
  boolean good = false;
  if (o instanceof Boolean) {
  good = ((Boolean) o).booleanValue();
  } else {
  good = Boolean.parseBoolean(o.toString());
  }
  c.setGoodCustomer(good);
  }
  }
  }

  static class Customer {

  private int age;
  private String name;
  private boolean goodCustomer;

  public Customer(int age, String name, boolean goodCustomer) {
  this.age = age;
  this.name = name;
  this.goodCustomer = goodCustomer;
  }

  public void setAge(int age) {
  System.out.println("Age changed to " + String.valueOf(age));
  this.age = age;
  }

  public int getAge() {
  return this.age;
  }

  public void setName(String name) {
  System.out.println("Name changed to " + name);
  this.name = name;
  }

  public String getName() {
  return this.name;
  }

  public void setGoodCustomer(boolean g) {
  System.out.println("Goodness changed to " + g);
  this.goodCustomer = g;
  }

  public boolean isGoodCustomer() {
  return this.goodCustomer;
  }
}
 
Zuletzt bearbeitet von einem Moderator:

Meniskusschaden

Top Contributor
Ich wurde durch #3 und #5 dann völlig verwirrt, wahrscheinlich habe ich sie falsch interpretiert. Und der Grund fürs komplette ändern war dann #8. Jetzt peile ich gar nichts mehr und bin frustriert.
Das waren ja auch alles sinnvolle Hinweise. Du musst das doch nur noch zusammen bringen. Du hast bereits in Post #1 anhand einer JTable die Spaltenbreite vorgegeben, fragst nun aber, warum du eine Referenz auf die JTable benötigst. Dein Post #1 beantwortet das doch schon: Du benötigst sie, weil du Zugriff auf die Spaltenbreite haben willst. Für den Zugang dazu benötigst du die JTable.
 

NochNixBlicker

Bekanntes Mitglied
Das schätze ich ha auch nur ICH bringe das Irgendwie nicht zusammen. Weil einerseits will ich dass ich einzeln bequem auf die Daten (wie in #30) zugreifen andererseits Brauche ich die Referenz zu JTable. Wie und wo referenziere ich JTable in #30, weil da speichere ich ja Zahlen als solche und nicht als Strings?
 
Zuletzt bearbeitet:

Joose

Top Contributor
Weil einerseits will ich dass ich einzeln bequem auf die Daten (wie in #30) zugreifen andererseits Brauche ich die Referenz zu JTable. Wie und wo referenziere ich JTable in #30?

In #30 hattest du folgenden Code:
Java:
frame.getContentPane().add(new JScrollPane(new JTable(wktm)));
Hier wird ein neues JTable Objekt erstellt und direkt übergeben, aber nirgends eine Referenz gespeichert
In #1 hattest du folgenden Code:
Java:
JTable table = new JTable(model);
Hier erzeugst du ein neues JTable Objekt und speicherst die Referenz zu diesem Objekt in der Variable "table".

Diese Zeile könntest du 1:1 im Code von Post#30 verwenden, aber dann musst du eben dem JScrollPane die Variable als Parameter übergeben und kein neues Objekt erstellen.
 

NochNixBlicker

Bekanntes Mitglied
Sorry, das Prinzip glaub ich beginn ich zu verstehen. Aber irgendwie sehe ich im Moment den Wald vor lauter Bäumen nicht. Vor meinen Augen verschwimmt alles zur Bleiwüste. Würdest du bitte das alles für mich zusammenPasten()?
 

Nuiton

Bekanntes Mitglied
Das Problem ist dass wenn einer von uns irgendetwas fuer dich raushaut, die Wahrscheinlichkeit besteht dass du nicht verstehst was ueberhaupt passiert ist und wie es funktioniert. Schau dir Objekte nochmal an, dann sollte Post #27 z.B. viel mehr Sinn ergeben.
Hier noch mal ein Rueckblick:
Entferne:
Java:
frame.getContentPane().add(newJScrollPane(new JTable(wktm)));
Schreib dann im gleichen Platz:
Java:
JTable myTable = new JTable(wktm);
Und dadrunter:
Java:
myTable.getColumnModel().getColumn(0).setPreferredWidth(300);
 

NochNixBlicker

Bekanntes Mitglied
Sobald ich die Zeile entferne, oder auskommentiere habe anstatt eines Fensterrahmens mit angzeigter Tabelle und Werten ein minimiertes Fenster mit nichts! Ist das richtig?
 

NochNixBlicker

Bekanntes Mitglied
Progge ich:

Java:
JTable table;
    frame.getContentPane().add(new JScrollPane(table = new JTable()));
  frame.pack();
  frame.setVisible(true);

Dann ist glaube ich wieder die eine Tabelle über der Anderen.
 

Nuiton

Bekanntes Mitglied
So wie du es gerade gemacht hast ist richtig - du hast ein Objekt namens "table" erstellt und kannst es jetzt immer wieder benutzen um Aenderungen an deiner Tabelle durchzufuehren. Das kannst du z.B. mit JScrollPane auch machen, oder JLabel, JButton, ... etc.

Jetzt wo es hoffentlich etwas besser verstanden wird, wie du Objekte erstellst usw., kannst du nun folgendes schreiben:

Java:
...

public class TriSdwBsp  {
   public static void main(String[] args) {
     JFrame frame = new JFrame("Richtwerte für sigma und mue");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setLocation(200, 100);
     WettkampfTableModel wktm = new WettkampfTableModel();
     wktm.addWettkampf(new Wettkampf(1500, 48, "LL", "olympisch", 0.2569, 0.0257));
     wktm.addWettkampf(new Wettkampf(1500, 4, "LL", "olympisch", 0.0689, 6.4879));
     wktm.addWettkampf(new Wettkampf(3800, 32, "BL", "lang", 0.8931, 1.4863));
     wktm.addWettkampf(new Wettkampf(3800, 53, "BL", "lang", 0.4659, 0.0256));
   
     // Aenderungen!
     JTable myTable = new JTable(wktm);
     JScrollPane scroll = new JScrollPane(myTable);
     // Spalte 1 (bzw. Spalte 0) = 300 Pixel in Breite
     myTable.getColumnModel().getColumn(0).setPreferredWidth(300);
   
     frame.getContentPane().add(scroll);
     frame.pack();
     frame.setVisible(true);
   }
}
...
Der Rest deines Codes bleibt gleich.
 

NochNixBlicker

Bekanntes Mitglied
Window mit Tabelle - so will ich es
Java:
package einsatz;


import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;

public class TriSdwBsp  {
    public static void main(String[] args) {
    JFrame frame = new JFrame("Richtwerte für sigma und mue");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocation(200, 100);
    WettkampfTableModel wktm = new WettkampfTableModel();
    wktm.addWettkampf(new Wettkampf(1500, 48, "LL", "m30","olympisch", 0.2569, 0.0257));
    wktm.addWettkampf(new Wettkampf(1500, 4, "LL",  "m40", "olympisch", 0.0689, 6.4879));
    wktm.addWettkampf(new Wettkampf(3800, 32, "BL", "w30", "lang", 0.8931, 1.4863));
    wktm.addWettkampf(new Wettkampf(3800, 53, "BL", "w35", "lang", 0.4659, 0.0256));
     
    // Aenderungen!
    JTable myTable = new JTable(wktm);
    JScrollPane scroll = new JScrollPane(myTable);

    myTable.getColumnModel().getColumn(0).setPreferredWidth(50);
    myTable.getColumnModel().getColumn(1).setPreferredWidth(20);
     
    frame.getContentPane().add(scroll);
    frame.pack();
    frame.setVisible(true);
    }

  static class WettkampfTableModel extends AbstractTableModel {

  /**
  *
  */
  private static final long serialVersionUID = 1L;

  private ArrayList<Wettkampf> wettkaempfe = new ArrayList<Wettkampf>();

  private String[] columns = new String[] { "Strecke", "n", "Liga", "AK", "Bezeichnung", "mue", "sigma" };

  public void addWettkampf(Wettkampf wk) {
  wettkaempfe.add(wk);
  super.fireTableDataChanged();
  }

  public int getRowCount() {
  return wettkaempfe.size();
  }

  public int getColumnCount() {
  return columns.length;
  }

  public boolean isCellEditable(int row, int column) {
  return false;
  }

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

  public Object getValueAt(int row, int column) {
  Wettkampf wk = wettkaempfe.get(row);
  switch (column) {
  case 0:
  return wk.getStrecke();
  case 1:
  return wk.n;
  case 2:
  return wk.getLiga();
  case 3:
  return wk.getBez();
  case 4:
      return wk.getAk();
  case 5:
  return wk.getMue();
  case 6:
  return wk.getSigma();
  default:
  return null;
  }
  }
  }

  static class Wettkampf {

  private int strecke, n;
  private String liga, bez, ak;
  private Double mue, sigma;

  public Wettkampf(int strecke, int n, String liga, String bez, String ak, Double mue, Double sigma) {
  this.strecke = strecke;
  this.liga = liga;
  this.mue = mue;
  this.sigma = sigma;
  this.bez = bez;
  this.ak = ak;
  this.n = n;
  }

  public int getStrecke() {
  return this.strecke;
  }

  public int getN() {
  return this.n;
  }

  public String getLiga() {
  return this.liga;
  }

  public String getBez() {
  return this.bez;
  }
   
  public String getAk() {
  return this.ak;
  }

  public Double getSigma() {
  return this.sigma;
  }

  public Double getMue() {
  return this.mue;
  }
  }
}

In diese Panel will ich die Tabelle reinhaben:
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.AbstractTableModel;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;

import einsatz.TriSdwBsp.Wettkampf;
import einsatz.TriSdwBsp.WettkampfTableModel;

import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;


public class TriBsp extends JPanel {

  /**
  *
  */
  private static final long serialVersionUID = -6671920676546497516L;

  public TriBsp() {
    WettkampfTableModel wktm = new WettkampfTableModel();
    wktm.addWettkampf(new Wettkampf(1500, 48, "LL", "m30","olympisch", 0.2569, 0.0257));
    wktm.addWettkampf(new Wettkampf(1500, 4, "LL",  "m40", "olympisch", 0.0689, 6.4879));
    wktm.addWettkampf(new Wettkampf(3800, 32, "BL", "w30", "lang", 0.8931, 1.4863));
    wktm.addWettkampf(new Wettkampf(3800, 53, "BL", "w35", "lang", 0.4659, 0.0256));
     
    // Aenderungen!
    JTable myTable = new JTable(wktm);
    JScrollPane scroll = new JScrollPane(myTable);

    myTable.getColumnModel().getColumn(0).setPreferredWidth(50);
    myTable.getColumnModel().getColumn(1).setPreferredWidth(20);
     
//    frame.getContentPane().add(scroll);
//    frame.pack();
//    frame.setVisible(true);
    }

 static class WettkampfTableModel extends AbstractTableModel {

  /**
  *
  */
  private static final long serialVersionUID = 1L;

  private ArrayList<Wettkampf> wettkaempfe = new ArrayList<Wettkampf>();

  private String[] columns = new String[] { "Strecke", "n", "Liga", "AK", "Bezeichnung", "mue", "sigma" };

  public void addWettkampf(Wettkampf wk) {
  wettkaempfe.add(wk);
  super.fireTableDataChanged();
  }

  public int getRowCount() {
  return wettkaempfe.size();
  }

  public int getColumnCount() {
  return columns.length;
  }

  public boolean isCellEditable(int row, int column) {
  return false;
  }

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

  public Object getValueAt(int row, int column) {
  Wettkampf wk = wettkaempfe.get(row);
  switch (column) {
  case 0:
  return wk.getStrecke();
  case 1:
  return wk.n;
  case 2:
  return wk.getLiga();
  case 3:
  return wk.getBez();
  case 4:
      return wk.getAk();
  case 5:
  return wk.getMue();
  case 6:
  return wk.getSigma();
  default:
  return null;
  }
  }
 }

 static class Wettkampf {

  private int strecke, n;
  private String liga, bez, ak;
  private Double mue, sigma;

  public Wettkampf(int strecke, int n, String liga, String bez, String ak, Double mue, Double sigma) {
  this.strecke = strecke;
  this.liga = liga;
  this.mue = mue;
  this.sigma = sigma;
  this.bez = bez;
  this.ak = ak;
  this.n = n;
  }

  public int getStrecke() {
  return this.strecke;
  }

  public int getN() {
  return this.n;
  }

  public String getLiga() {
  return this.liga;
  }

  public String getBez() {
  return this.bez;
  }
   
  public String getAk() {
  return this.ak;
  }

  public Double getSigma() {
  return this.sigma;
  }

  public Double getMue() {
  return this.mue;
  }
 }}
 

Nuiton

Bekanntes Mitglied
Wie ich dir schon geschrieben habe, du erstellst ein JPanel-Objekt, fuegst deine JScrollPane zum JPanel hinzu, welches du wiederrum zu einem JFrame oder JDialog hinzufuegen kannst.
 

NochNixBlicker

Bekanntes Mitglied
Sorry ich meinte JTabbedPane, ich weiss das aber nicht mehr, wie ich das gemacht habe:

Hier der Code vom TabbedPane, der nicht so will wie ich:

Java:
package einsatz;

import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;

import java.util.ArrayList;

public class TriBsp extends JPanel {

   /**
   *
   */
   private static final long serialVersionUID = -6671920676546497516L;

   public static void main(String[] args) {
//     JFrame frame = new JFrame("Richtwerte für sigma und mue");
//     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//     frame.setLocation(200, 100);
     WettkampfTableModel wktm = new WettkampfTableModel();
     wktm.addWettkampf(new Wettkampf(1500, 48, "LL", "m30", "olympisch", 0.2569, 0.0257));
     wktm.addWettkampf(new Wettkampf(1500, 4, "LL", "m40", "olympisch", 0.0689, 6.4879));
     wktm.addWettkampf(new Wettkampf(3800, 32, "BL", "w30", "lang", 0.8931, 1.4863));
     wktm.addWettkampf(new Wettkampf(3800, 53, "BL", "w35", "lang", 0.4659, 0.0256));

     // Aenderungen!
     JTable myTable = new JTable(wktm);
     JScrollPane scroll = new JScrollPane(myTable);

     myTable.getColumnModel().getColumn(0).setPreferredWidth(50);
     myTable.getColumnModel().getColumn(1).setPreferredWidth(20);

//     frame.getContentPane().add(scroll);
//     frame.pack();
//     frame.setVisible(true);
   }

   static class WettkampfTableModel extends AbstractTableModel {

     /**
      *
      */
     private static final long serialVersionUID = 1L;

     private ArrayList<Wettkampf> wettkaempfe = new ArrayList<Wettkampf>();

     private String[] columns = new String[] { "Strecke", "n", "Liga", "AK", "Bezeichnung", "mue", "sigma" };

     public void addWettkampf(Wettkampf wk) {
       wettkaempfe.add(wk);
       super.fireTableDataChanged();
     }

     public int getRowCount() {
       return wettkaempfe.size();
     }

     public int getColumnCount() {
       return columns.length;
     }

     public boolean isCellEditable(int row, int column) {
       return false;
     }

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

     public Object getValueAt(int row, int column) {
       Wettkampf wk = wettkaempfe.get(row);
       switch (column) {
       case 0:
         return wk.getStrecke();
       case 1:
         return wk.n;
       case 2:
         return wk.getLiga();
       case 3:
         return wk.getBez();
       case 4:
         return wk.getAk();
       case 5:
         return wk.getMue();
       case 6:
         return wk.getSigma();
       default:
         return null;
       }
     }
   }

   static class Wettkampf {

     private int strecke, n;
     private String liga, bez, ak;
     private Double mue, sigma;

     public Wettkampf(int strecke, int n, String liga, String bez, String ak, Double mue, Double sigma) {
       this.strecke = strecke;
       this.liga = liga;
       this.mue = mue;
       this.sigma = sigma;
       this.bez = bez;
       this.ak = ak;
       this.n = n;
     }

     public int getStrecke() {
       return this.strecke;
     }

     public int getN() {
       return this.n;
     }

     public String getLiga() {
       return this.liga;
     }

     public String getBez() {
       return this.bez;
     }

     public String getAk() {
       return this.ak;
     }

     public Double getSigma() {
       return this.sigma;
     }

     public Double getMue() {
       return this.mue;
     }
   }}
 

Meniskusschaden

Top Contributor
Sorry, aber ich kapiere nicht mehr, was du nun eigentlich willst. Jetzt hat TriBsp wieder eine Main-Methode, vorher hatte es keine. Ist das nun das Hauptprogramm oder soll es von einer anderen Klasse benutzt werden? Und ein JTabbedPane kommt in deinem Code überhaupt nicht vor. Drück dich doch mal deutlicher aus, was du jeweils erreichen willst und wie sich das Problem äußert.
 

NochNixBlicker

Bekanntes Mitglied
Upps ich daten jeder Code hätte eine Main-Methode. Aber ich gib euch hier mal die App:

Hauptframe der App
Java:
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JFrame;

import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

import einsatz.Tri;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.RowSpec;
import com.jgoodies.forms.layout.FormSpecs;
  
public class GIzEH implements ActionListener {

   private JFrame mainFrame;

   /**
    * Launch the application.
    *
    * @param args
    */
   public GIzEH() {
     initComponents();
   }

   private void initComponents() // Creating and initializing components
   {
     mainFrame = new JFrame();
     mainFrame.setTitle("GIzEH 3.0");
     ImageIcon img = new ImageIcon("C:\\Users\\Erik\\workspace\\GIzEH\\src\\res\\GIzEH.png");
     try {

       mainFrame.setIconImage(img.getImage());
     } catch (Exception e) {
       e.printStackTrace();
     }
     mainFrame.setVisible(true);
     mainFrame.setBounds(100, 100, 670, 368);
     mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

     JMenuBar menuBar = new JMenuBar();
     mainFrame.setJMenuBar(menuBar);

     // Datei
     JMenu mndatei = new JMenu("Datei");
     menuBar.add(mndatei);

     JMenuItem mntmUpdateErzwingen = new JMenuItem("Update erzwingen");
     mndatei.add(mntmUpdateErzwingen);
     mntmUpdateErzwingen.addActionListener(this);

     JMenuItem mntmEinstellungen = new JMenuItem("Einstellungen");
     mndatei.add(mntmEinstellungen);
     mntmEinstellungen.addActionListener(this);

     JMenuItem mntmBenutzerwechsel = new JMenuItem("Benutzerwechsel");
     mndatei.add(mntmBenutzerwechsel);
     mntmBenutzerwechsel.addActionListener(this);

     mndatei.addSeparator();

     JMenuItem mntmBeenden = new JMenuItem("Beenden");
     mntmBeenden.addActionListener(this);
     mndatei.add(mntmBeenden);

     // Einsatz
     JMenu mnEinsatz = new JMenu("Einsatz");
     menuBar.add(mnEinsatz);

     // *############################################################*/
     JMenuItem mntmSichern = new JMenuItem("Sichern");
     mnEinsatz.add(mntmSichern);
     mntmSichern.addActionListener(this);
     mntmSichern.setActionCommand("Sichern");
    
     mnEinsatz.addSeparator();

     JMenuItem mntmRetten = new JMenuItem("Retten");
     mnEinsatz.add(mntmRetten);
     mntmRetten.addActionListener(this);
     mntmRetten.setActionCommand("Retten");

     mnEinsatz.addSeparator();
    
     // *############################################################*/
     JMenuItem mntmBergen = new JMenuItem("Bergen");
     mnEinsatz.add(mntmBergen);
     mntmBergen.addActionListener(this);

     // ?
     JMenu mn = new JMenu("?");
     menuBar.add(mn);

     JMenuItem mntmInhaltUndIndex = new JMenuItem("Inhalt und Index");
     mn.add(mntmInhaltUndIndex);
     mntmInhaltUndIndex.addActionListener(this);

     JMenuItem mntmVerursacher = new JMenuItem("Verursacher");
     mn.add(mntmVerursacher);
     mainFrame.getContentPane().setLayout(new FormLayout(new ColumnSpec[] {
         FormSpecs.RELATED_GAP_COLSPEC,
         FormSpecs.DEFAULT_COLSPEC,},
       new RowSpec[] {
         FormSpecs.RELATED_GAP_ROWSPEC,
         FormSpecs.DEFAULT_ROWSPEC,
         FormSpecs.RELATED_GAP_ROWSPEC,
         FormSpecs.DEFAULT_ROWSPEC,}));
     mntmVerursacher.addActionListener(this);

     JPanel panel = new JPanel();

     panel.setLayout(null);
   }

   @Override
   public void actionPerformed(ActionEvent e) {
     if (e.getActionCommand().equals("Sichern")) {
       Tri dialog = new Tri();
     } else if (e.getActionCommand().equals("Retten")) {
       System.out.println("Retten wurde gedrückt");
     } else if (e.getActionCommand().equals("Bergen")) {
       System.out.println("Bergen wurde gedrückt");
     } else if (e.getActionCommand().equals("Beenden")) {
       exit();
     }
   }

   public void exit() {
     int result = JOptionPane.showConfirmDialog(null, "Möchten Sie das Programm beenden?", "Programm beenden",
         JOptionPane.YES_NO_OPTION);
     switch (result) {
     case JOptionPane.YES_OPTION:
       System.exit(0); // Aktion(en) bei Klicken auf den "Ja-Button"
     }
   }

   public static void main(String[] args) {
     EventQueue.invokeLater(new Runnable() {
       public void run() {
         new GIzEH();
       }
     });
   }
}

Das Formular mit Panel
Java:
package einsatz;

import javax.swing.JDialog;
import javax.swing.JTabbedPane;
import java.awt.Toolkit;

public class Tri extends JDialog {

   /**
    *
    */
   private static final long serialVersionUID = 1L;

   /**
    * Launch the application.
    */
   /**
    * Create the dialog.
    */
   public Tri() {
     setIconImage(Toolkit.getDefaultToolkit().getImage(Tri.class.getResource("/res/GIzEH.ico")));
     setBounds(200, 200, 1080, 400);
     JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.TOP);
     getContentPane().add(tabbedPane);
     this.setVisible(true);
     this.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
    
     TriSdw sdw = new TriSdw();
     tabbedPane.addTab("Stammdaten", null, sdw, null);

     TriBsp bsp = new TriBsp();
     tabbedPane.addTab("Beispielwerte", null, bsp, null);

     TriNvt nvt = new TriNvt();
     tabbedPane.addTab("Normalverteilung", null, nvt, null);

     TriZus zus = new TriZus();
     tabbedPane.addTab("Zeiten und Strecken", null, zus, null);

     TriBpl bpl = new TriBpl();
     tabbedPane.addTab("Bedarfsplanung", null, bpl, null);

   }
}

Besagtes Panel, in das die Tabelle reinsoll:
Java:
package einsatz;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;

import einsatz.TriSdwBsp.Wettkampf;
import einsatz.TriSdwBsp.WettkampfTableModel;

import java.util.ArrayList;

public class TriBsp extends JPanel {

   /**
   *
   */
   private static final long serialVersionUID = -6671920676546497516L;

   public static void main(String[] args) {
     JFrame frame = new JFrame("Richtwerte für sigma und mue");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setLocation(200, 100);
     WettkampfTableModel wktm = new WettkampfTableModel();
     wktm.addWettkampf(new Wettkampf(1500, 48, "LL", "m30", "olympisch", 0.2569, 0.0257));
     wktm.addWettkampf(new Wettkampf(1500, 4, "LL", "m40", "olympisch", 0.0689, 6.4879));
     wktm.addWettkampf(new Wettkampf(3800, 32, "BL", "w30", "lang", 0.8931, 1.4863));
     wktm.addWettkampf(new Wettkampf(3800, 53, "BL", "w35", "lang", 0.4659, 0.0256));

     // Aenderungen!
     JTable myTable = new JTable(wktm);
     JScrollPane scroll = new JScrollPane(myTable);

     myTable.getColumnModel().getColumn(0).setPreferredWidth(50);
     myTable.getColumnModel().getColumn(1).setPreferredWidth(20);

     frame.getContentPane().add(scroll);
     frame.pack();
     frame.setVisible(true);
   }

   static class WettkampfTableModel extends AbstractTableModel {

     /**
      *
      */
     private static final long serialVersionUID = 1L;

     private ArrayList<Wettkampf> wettkaempfe = new ArrayList<Wettkampf>();

     private String[] columns = new String[] { "Strecke", "n", "Liga", "AK", "Bezeichnung", "mue", "sigma" };

     public void addWettkampf(Wettkampf wk) {
       wettkaempfe.add(wk);
       super.fireTableDataChanged();
     }

     public int getRowCount() {
       return wettkaempfe.size();
     }

     public int getColumnCount() {
       return columns.length;
     }

     public boolean isCellEditable(int row, int column) {
       return false;
     }

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

     public Object getValueAt(int row, int column) {
       Wettkampf wk = wettkaempfe.get(row);
       switch (column) {
       case 0:
         return wk.getStrecke();
       case 1:
         return wk.n;
       case 2:
         return wk.getLiga();
       case 3:
         return wk.getBez();
       case 4:
         return wk.getAk();
       case 5:
         return wk.getMue();
       case 6:
         return wk.getSigma();
       default:
         return null;
       }
     }
   }

   static class Wettkampf {

     private int strecke, n;
     private String liga, bez, ak;
     private Double mue, sigma;

     public Wettkampf(int strecke, int n, String liga, String bez, String ak, Double mue, Double sigma) {
       this.strecke = strecke;
       this.liga = liga;
       this.mue = mue;
       this.sigma = sigma;
       this.bez = bez;
       this.ak = ak;
       this.n = n;
     }

     public int getStrecke() {
       return this.strecke;
     }

     public int getN() {
       return this.n;
     }

     public String getLiga() {
       return this.liga;
     }

     public String getBez() {
       return this.bez;
     }

     public String getAk() {
       return this.ak;
     }

     public Double getSigma() {
       return this.sigma;
     }

     public Double getMue() {
       return this.mue;
     }
   }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
missy72 JavaFX TableView Spalte zwischen den Zeilen AWT, Swing, JavaFX & SWT 5
H Swing Jtable extra spalte AWT, Swing, JavaFX & SWT 6
G JavaFX TableView Wert in Spalte ändern AWT, Swing, JavaFX & SWT 0
L JavaFX TableView mit Attributs der Modellreferenzerierung für die Spalte AWT, Swing, JavaFX & SWT 3
M JavaFX TableView nach Spalte sortieren AWT, Swing, JavaFX & SWT 1
J JTable filtern nach einer Spalte AWT, Swing, JavaFX & SWT 2
G JTable als fixierte Spalte in Scrollpane scrollt nicht mit... AWT, Swing, JavaFX & SWT 1
L Zwei String Array in eine Spalte einfügen AWT, Swing, JavaFX & SWT 1
Bartertown JTable - Verschiedene Komponenten in einer Spalte unterbringen AWT, Swing, JavaFX & SWT 3
S Swing JTable zusätzliche Spalte mit einer Checkbox einfügen AWT, Swing, JavaFX & SWT 7
T SWT Table (mit Spinner Spalte) Daten auslesen AWT, Swing, JavaFX & SWT 4
L Swing Button in GridBackLayout positionieren und TitleBorder pro Spalte hinzufügen AWT, Swing, JavaFX & SWT 9
P Swing Alle Zeilen einer Spalte (jTable) zusammen zählen und in eine eigene Zeile das Ergebnis schreiben. AWT, Swing, JavaFX & SWT 7
S JTable Spalte "normale" Breite? AWT, Swing, JavaFX & SWT 5
X Icons in einer Spalte darstellen AWT, Swing, JavaFX & SWT 6
F JTable soll mit Buttons befüllt werden, aber nicht in jede Zelle einer Spalte AWT, Swing, JavaFX & SWT 3
GianaSisters Swing ComboBox im jTable (in bestimmter Zelle nicht über die ganze Spalte) AWT, Swing, JavaFX & SWT 4
B Swing DefaultTableModel, Checkbox in Spalte AWT, Swing, JavaFX & SWT 4
L Action listener in bestimmter spalte AWT, Swing, JavaFX & SWT 2
N Swing JTable: Objekttyp einer Spalte nachträglich ändern AWT, Swing, JavaFX & SWT 6
R JTree - Spalte aufklappen AWT, Swing, JavaFX & SWT 2
A Swing Spalte in JTable ausblenden AWT, Swing, JavaFX & SWT 4
M JList von Beginn an sortiert nach Spalte ohne Klick? AWT, Swing, JavaFX & SWT 2
A Tabellen Spalte löschen AWT, Swing, JavaFX & SWT 6
T JTable mit Renderer sortiert die gerenderte Spalte nicht richtig AWT, Swing, JavaFX & SWT 2
F Swing J(X)Table Spalten umsortieren NUR im View (Wie finde ich eine Spalte nach Name?) AWT, Swing, JavaFX & SWT 3
E Spalte in JTable löschen AWT, Swing, JavaFX & SWT 4
B JTable, Spalte nicht verschiebbar AWT, Swing, JavaFX & SWT 2
R JTable immer nur die letzte Spalte markiert.... AWT, Swing, JavaFX & SWT 4
S Swing JTable: in erster Spalte Image darstellen AWT, Swing, JavaFX & SWT 30
slawaweis JXTreeTable, jede Spalte einzeln scrollbar machen? AWT, Swing, JavaFX & SWT 2
T JTable - Einzelne Spalte nicht sortieren? AWT, Swing, JavaFX & SWT 2
V JTable: Sortierung einer Spalte zum Programmstart? AWT, Swing, JavaFX & SWT 3
G JTable warten bis Spalte verschoben wurde AWT, Swing, JavaFX & SWT 2
R JTable: Zellen einer Spalte unterschiedlich befüllen AWT, Swing, JavaFX & SWT 2
G JTable in Spalte von anderer JTable nicht editierbar AWT, Swing, JavaFX & SWT 7
G Alle Werte einer Spalte in JTable zusammenrechnen AWT, Swing, JavaFX & SWT 2
N Gridlayout 2. Spalte füllen AWT, Swing, JavaFX & SWT 4
I SWT Größe einer Tabellenzeile, -spalte ändern AWT, Swing, JavaFX & SWT 8
J in JTable ganze Spalte editierbar machen AWT, Swing, JavaFX & SWT 17
J JTable ganze Spalte sperren AWT, Swing, JavaFX & SWT 6
C Spalte aus JTable löschen AWT, Swing, JavaFX & SWT 8
mabe83 Kontinuierlich verbleibende Zeit in JTable Spalte anzeigen AWT, Swing, JavaFX & SWT 2
mabe83 Swing: jTableCellRenderer -> Klappt nur bei String-Spalte AWT, Swing, JavaFX & SWT 2
P JTable:Sortierung nach der Zeit/Spalte mit Calendar-Objekten AWT, Swing, JavaFX & SWT 2
D JTable 1. Spalte fixieren AWT, Swing, JavaFX & SWT 3
E JTable nur die erste Spalte auswählbar? AWT, Swing, JavaFX & SWT 4
A Icon,zentriert,Farbiger Text alles in einer Tabelle/Spalte ? AWT, Swing, JavaFX & SWT 4
B JTable - Wechsel der Spalte bei TAB, RETURN oder Maus AWT, Swing, JavaFX & SWT 5
S Hintergrundfarbe in einer Spalte der JTable verändern AWT, Swing, JavaFX & SWT 3
A JTable: Zeit in Spalte ausgeben AWT, Swing, JavaFX & SWT 2
F JTable Spalte sortieren mit lauter JComboboxen ? AWT, Swing, JavaFX & SWT 15
W Spalte einer Tabelle as nicht editierbar setzen - wie ? AWT, Swing, JavaFX & SWT 2
S Checkbox oder String in JTable-Spalte AWT, Swing, JavaFX & SWT 4
U JTable Position der Spalte abfragen AWT, Swing, JavaFX & SWT 7
W Wie setz ich beim TableRowSorter die zu sortierende Spalte AWT, Swing, JavaFX & SWT 4
C MouseListener für Spalte eines JTables AWT, Swing, JavaFX & SWT 4
D GridLayout mit nur einer Spalte, aber n Zeilen AWT, Swing, JavaFX & SWT 2
D GridBagLayout: 2. Spalte auf JPanel-Breite expandieren AWT, Swing, JavaFX & SWT 2
E JTable; Zeilen der ersten Spalte definieren? AWT, Swing, JavaFX & SWT 4
M Spalte mit fortlaufener Zeit AWT, Swing, JavaFX & SWT 6
H JTable Text aus mehreren Zellen in einer Spalte kopieren? AWT, Swing, JavaFX & SWT 3
B Eine Spalte in drei verschiedenlange Spalten aufteilen AWT, Swing, JavaFX & SWT 2
Luma Spalte einer Tabelle ausblenden AWT, Swing, JavaFX & SWT 8
S TableTree - Tree nicht in erster Spalte AWT, Swing, JavaFX & SWT 5
L Falsche Zeile gelöscht nach Spalte Sortierung in JTable AWT, Swing, JavaFX & SWT 2
L JTable (DefaultTableModel) nach Spalte sortieren-TableSorter AWT, Swing, JavaFX & SWT 2
S JTable Spalte hinzufügen AWT, Swing, JavaFX & SWT 3
F Ausrichtung einer Spalte ändern? AWT, Swing, JavaFX & SWT 4
L Erste Spalte eines JTables soll nicht editierbar sein. AWT, Swing, JavaFX & SWT 7
J Spalte in JTable aus- und wieder einblenden AWT, Swing, JavaFX & SWT 10
Student JTable - eine fixe Spalte, der Rest scrollbar AWT, Swing, JavaFX & SWT 18
S fehlende spalte bei gridbaglayout AWT, Swing, JavaFX & SWT 7
V JTable mit mehreren Componenten in einer Spalte ? AWT, Swing, JavaFX & SWT 6
D JTable Spalte unsichtbar machen AWT, Swing, JavaFX & SWT 6

Ähnliche Java Themen

Neue Themen


Oben