Announcement

Collapse
No announcement yet.

JTabel-Nach Eingabe nächste Zelle zum editieren automatisch selektieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • JTabel-Nach Eingabe nächste Zelle zum editieren automatisch selektieren

    Hallo allerseits,

    ich bin grad dabei eine grafische Benutzeroberfläche zu erstellen. An einer Stelle erstelle nach einem Klick auf einen Bestellbutton eine JTable (7 Spalten) in der einige Eingaben zu machen sind. Spalte 1 ist nicht editierbar. Deshalb soll direkt zu Beginn die 2. Spalte der obersten Zeile fokussiert sein. Wenn hier die Eingabe erfolgt ist und Enter gedrückt wird, wird aus einer DB ein Artikel geladen und in der Zelle rechts daneben ausgegeben werden. So weit funktioniert das auch. allerdings springt der Fokus nach Drücken der Entertaste eine Zeile tiefer in die Zelle darunter. Für den Programmablauf muss der Fokus aber 2 Zellen nach rechts verschoben werden.
    Muss ich hier der Tabelle auch eine FocusTraversalPolicy anhängen?

    2. Frage zu diesem Thema:
    Wenn die Eingaben in der Zeile gemacht worden sind und in der letzten Zelle der Zeile Enter gedrückt wurde, soll in der View eine neue Zeile erscheinen, in dem das Spielchen von vorn beginnt.

    Ich hab, wie gesagt eine JTable verwendet und ein eigenes TableModel in dem ich die Daten verwalte. Das Model sieht wie folgt aus:
    package gui.controller;

    import javax.swing.event.TableModelListener;
    import javax.swing.table.AbstractTableModel;

    public class orderingTableModel extends AbstractTableModel{
    String[] header = {"1", "2","3","4","5"};//new String[5];
    String[][] data = new String[50][5];
    // initiale Zeilenzahl
    private int x = 5;

    public void addTableModelListener(TableModelListener arg0) {
    }

    public int getColumnCount() {
    return x;
    }
    public String getColumnName(int arg0) {
    return header[arg0];
    }
    public int getRowCount() {
    return x;
    }

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

    public boolean isCellEditable(int row, int col) {
    return (col != 0 && col != 3);
    }

    public void removeTableModelListener(TableModelListener arg0) {
    }

    public void setValueAt(Object arg0, int row, int col) {
    data[row][col] = (String)arg0;
    }
    public String[] getHeader(){
    return header;
    }
    public String[][] getData(){
    return data;
    }
    }

    Hoffe, mir kann wer weiterhelfen.

    MfG Stefan
Working...
X