JCheckBox in einer JTable auswählbar machen

Status
Nicht offen für weitere Antworten.
Hallo,

ich hab nen kleines Problem, ich hab mir hier aus dem FAQ das Tutorial über JTable rein gezogen, treffe nun aber auf ein Problem.
Ich möchte in der Table in Spalte 2 JCheckboxen haben, in seinem Beispiel EditableTable macht er das ja auch wunderbar, also vielmehr es geht, man kann dort die JCheckbox auswählen und ihren Wert ändern.

Hier mal der Code dazu
Code:
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;

public class EditableTable {

  public static void main(String[] a) {
    JFrame frame = new JFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    String[] columnTitles = { "First Name", "Last Name", "Weight (lb)", "Blood Group", "Age>20yrs" };
    Object[][] dataEntries = { { "Saravan", "Pantham", new Integer(50), "B", new Boolean(false) },
        { "Eric", "", new Integer(180), "O", new Boolean(true) },
        { "John", "", new Integer(120), "AB", new Boolean(false) },
        { "Mathew", "", new Integer(140), "A", new Boolean(true) }, };
    TableModel model = new EditableTableModel(columnTitles, dataEntries);
    JTable table = new JTable(model);
    table.createDefaultColumnsFromModel();

    String[] bloodGroups = { "A", "B", "AB", "O" };
    JComboBox comboBox = new JComboBox(bloodGroups);
    table.getColumnModel().getColumn(3).setCellEditor(new DefaultCellEditor(comboBox));

    frame.add(new JScrollPane(table));

    frame.setSize(300, 200);
    frame.setVisible(true);
  }


}

class EditableTableModel extends AbstractTableModel {
  String[] columnTitles;

  Object[][] dataEntries;

  int rowCount;

  public EditableTableModel(String[] columnTitles, Object[][] dataEntries) {
    this.columnTitles = columnTitles;
    this.dataEntries = dataEntries;
  }

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

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

  public Object getValueAt(int row, int column) {
    return dataEntries[row][column];
  }

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

  public Class getColumnClass(int column) {
    return getValueAt(0, column).getClass();
  }

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

  public void setValueAt(Object value, int row, int column) {
    dataEntries[row][column] = value;
  }
}

So ich habe darauf hin ein anderes Beispiel erweitert, nur bei mir kommt nur Müll raus, sprich man kann den Wert der JCheckbox nicht ändern. Ich hab auch schon versucht mit den beiden Zeilen

Code:
 table.getColumnModel().getColumn(1).setCellEditor(new DefaultCellEditor(new JCheckbox()));
 table.createDefaultColumnsFromModel();

etwas zu erreichen aber fehlanzeige.


Hier mal mein Code
Code:
import java.awt.BorderLayout;
import java.util.Vector;

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


public class TableTest
{

   public static void main (String args[])
   {
      JFrame frame = new JFrame ("Editable Color Table");
      frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
      VTselectTableModel model = new VTselectTableModel();;
      JTable table = new JTable (model);
      
      
      Vector <Object> v1 = new Vector <Object> ( );
      v1.add ("Power");
      v1.add (new Boolean(false));
      Vector <Object> v2 = new Vector <Object> ( );
      v2.add ("Power Max");
      v2.add (new Boolean(true));

      model.addRow (v1);
      model.addRow (v2);
      
      table.createDefaultColumnsFromModel();
      JScrollPane scrollPane = new JScrollPane (table);
      frame.add (scrollPane, BorderLayout.CENTER);
      frame.setSize (400, 150);
      frame.setVisible (true);
   }
}

Und das dazu gehörige Tablemodel

Code:
import java.util.Vector;

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



public class VTselectTableModel extends AbstractTableModel
{
   /**
    * 
    */
   private static final long serialVersionUID = -4021085690657315775L;
   private Vector <TableModelListener> listeners   = new Vector <TableModelListener> ( );
   private Vector <Vector <Object>>    dataEntries = new Vector <Vector <Object>> ( );


   public void addTableModelListener (TableModelListener l)
   {
      listeners.add (l);
   }


   public void removeTableModelListener (TableModelListener l)
   {
      listeners.remove (l);

   }


   public Class <?> getColumnClass (int columnIndex)
   {
      switch (columnIndex)
      {
      case 0:
         return String.class;
      case 1:
         return Boolean.class;
      default:
         return null;
      }
   }


   public int getColumnCount ( )
   {
      // TODO Auto-generated method stub
      return 2;
   }


   public String getColumnName (int columnIndex)
   {
      switch (columnIndex)
      {
      case 0:
         return "ValueType";
      case 1:
         return "Selected";
      default:
         return null;
      }
   }


   public int getRowCount ( )
   {
      // TODO Auto-generated method stub
      return dataEntries.size ( );
   }


   public Object getValueAt (int rowIndex, int columnIndex)
   {
      Vector<Object> temp = dataEntries.get (rowIndex);
      return temp.get (columnIndex);
   }


   public boolean isCellEditable (int rowIndex, int columnIndex)
   {
      return true;  
   }


   public void setValueAt (Object value, int rowIndex, int columnIndex)
   {
      // TODO Auto-generated method stub

   }
   
   public void addRow(Vector<Object> row){
      dataEntries.add (row);
   }
}

Vielleicht kann mir ja jemand nen Tip geben...

gruß
keks[/code]
 
S

SlaterB

Gast
ich will mich ja nicht zu weit aus dem Fenster lehnen,
aber dass die Änderung des Modelinhalts bei
Code:
   public void setValueAt (Object value, int rowIndex, int columnIndex) 
   { 
      // TODO Auto-generated method stub 

   }
nicht geht, verwundert mich irgendwie nicht ;)

wie wärs mit
Code:
    public void setValueAt(Object value, int rowIndex, int columnIndex)
    {
        Vector<Object> temp = dataEntries.get(rowIndex);
        temp.set(columnIndex, value);

    }
?
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Z Swing JCheckBox in einer JTable AWT, Swing, JavaFX & SWT 8
Balbes Änderung des Wertes von JCheckBox in einer JTable AWT, Swing, JavaFX & SWT 4
S Swing Werte einer Jcheckbox aus eine Klasse A in eine Klasse B aufrufen AWT, Swing, JavaFX & SWT 6
FoolMoon Swing JCheckBox neben Text in einer Tabelle AWT, Swing, JavaFX & SWT 2
J Icon einer JCheckBox AWT, Swing, JavaFX & SWT 6
T Dynamische Anpassung einer jCheckBox AWT, Swing, JavaFX & SWT 11
G JMenu problem mit der Breite von einer JCheckBox AWT, Swing, JavaFX & SWT 2
J Falsches Rendern durch JCheckBox in eigenem JTree AWT, Swing, JavaFX & SWT 6
C JCheckBox disabled text color AWT, Swing, JavaFX & SWT 9
S JRadioButton und JCheckBox im JTree AWT, Swing, JavaFX & SWT 14
B JCheckBox ausrichten ? AWT, Swing, JavaFX & SWT 1
Paul15 JCheckBox und JToggleButton AWT, Swing, JavaFX & SWT 5
M Swing JCheckbox Namen vergeben? AWT, Swing, JavaFX & SWT 5
E Zustand der JCheckBox abfragen AWT, Swing, JavaFX & SWT 1
D JCheckbox und JSpinner in JTable AWT, Swing, JavaFX & SWT 9
K Swing JCheckbox ändern AWT, Swing, JavaFX & SWT 3
N ChangeListener und jCheckBox AWT, Swing, JavaFX & SWT 3
B JTable inkl. JCheckbox AWT, Swing, JavaFX & SWT 5
StrikeTom JCheckBox in JTable AWT, Swing, JavaFX & SWT 6
A Swing JCheckbox transparent machen AWT, Swing, JavaFX & SWT 7
G Swing JCheckBox, setEnabled(false) und HTML Text Problem AWT, Swing, JavaFX & SWT 5
B JCheckbox ja oder nein AWT, Swing, JavaFX & SWT 3
O Jcheckbox Status nachträglich abfragen AWT, Swing, JavaFX & SWT 2
C Swing JCheckBox setEditable(false)? AWT, Swing, JavaFX & SWT 9
X Swing JCheckbox in JTable AWT, Swing, JavaFX & SWT 6
F DefaultTableCellRenderer blendet JCheckBox aus AWT, Swing, JavaFX & SWT 4
Burny91 Swing JCheckBox in JList einbetten AWT, Swing, JavaFX & SWT 4
K JCheckBox datenstruktur AWT, Swing, JavaFX & SWT 10
J Swing JCheckBox enabled, aber graues Kästchen AWT, Swing, JavaFX & SWT 2
S Swing Problem mit JCheckBox auf JPanel in JScrollPane AWT, Swing, JavaFX & SWT 8
C JCheckBox Kreuz statt Haken AWT, Swing, JavaFX & SWT 7
S GUI blocked after checked a JcheckBox AWT, Swing, JavaFX & SWT 2
S JCheckBox Paint AWT, Swing, JavaFX & SWT 7
M JCheckBox Icon anpassen AWT, Swing, JavaFX & SWT 2
E Matrix mit JCheckBox AWT, Swing, JavaFX & SWT 29
S Frage zu JCheckBox AWT, Swing, JavaFX & SWT 2
T Swing JCheckBox: Wie getState() abfragen? AWT, Swing, JavaFX & SWT 2
E Swing Wechsel in JCheckBox abfangen AWT, Swing, JavaFX & SWT 10
S JCheckBox AWT, Swing, JavaFX & SWT 9
D JTable - JCheckbox und Renderer AWT, Swing, JavaFX & SWT 2
V JCheckBox in JTable AWT, Swing, JavaFX & SWT 3
T JCheckBox deselektieren (Haken wieder entfernen) - wie? AWT, Swing, JavaFX & SWT 5
W JRadioButton / JCheckBox problem AWT, Swing, JavaFX & SWT 6
J Listener erkennt Deselektierung von JCheckbox nicht AWT, Swing, JavaFX & SWT 13
T JCheckBox ohne "Box"? AWT, Swing, JavaFX & SWT 6
H JCheckBox - Ist die Abfrage wirklich so umständlich ? AWT, Swing, JavaFX & SWT 3
A Problem der Größe von JCheckBox nach Hinzufügen eines Popups AWT, Swing, JavaFX & SWT 2
F Wie Item Listener zu JCheckBox(in JTable) hinzufügen? AWT, Swing, JavaFX & SWT 6
M JCheckbox, das selektieren verhindern AWT, Swing, JavaFX & SWT 9
M JCheckBox Standard MouseListener entfernen AWT, Swing, JavaFX & SWT 13
A JCheckBox abfragen AWT, Swing, JavaFX & SWT 6
J Variabler VariablenIdentifier - JCheckBox AWT, Swing, JavaFX & SWT 9
I JTree und JCheckbox Problem AWT, Swing, JavaFX & SWT 4
G jCheckBox AWT, Swing, JavaFX & SWT 8
D Seltsamer Rahmen bei JCheckBox AWT, Swing, JavaFX & SWT 7
G JCheckBox mit Text und Icon AWT, Swing, JavaFX & SWT 5
M JCheckbox in JCombobox AWT, Swing, JavaFX & SWT 7
L jCheckBox - aktiviert und nicht aktiviert AWT, Swing, JavaFX & SWT 7
H jCheckBox abschalten AWT, Swing, JavaFX & SWT 3
B JTextFiled, JCheckBox, JSpinner Eigenschaften speichern AWT, Swing, JavaFX & SWT 2
G JCheckbox Buttongroup Problem AWT, Swing, JavaFX & SWT 7
P JCheckBox: das 4eck mit kreuz soll rechts vom wort stehen AWT, Swing, JavaFX & SWT 3
R JCheckBox mit Image und Text AWT, Swing, JavaFX & SWT 5
G JCheckBox nicht änderbar machen AWT, Swing, JavaFX & SWT 2
V Statusabfrage von JCheckBox und JComboBox AWT, Swing, JavaFX & SWT 7
P JCheckBox AWT, Swing, JavaFX & SWT 4
L Probleme mit JCheckBox AWT, Swing, JavaFX & SWT 15
A JButton und JCheckBox im JTree reagieren nicht AWT, Swing, JavaFX & SWT 13
J JCheckBoxMenuItem und JCheckBox synchronisieren AWT, Swing, JavaFX & SWT 6
D Welche JCheckBox des Arrays ist das? AWT, Swing, JavaFX & SWT 2
P JCheckbox einmal gewählt immer gewählt ? AWT, Swing, JavaFX & SWT 2
M Weiße JCheckBox? AWT, Swing, JavaFX & SWT 5
S Herausbekommen welche JCheckBox selectiert wurde AWT, Swing, JavaFX & SWT 6
MiMa Optimieren einer Methode zum Zentrieren von Fenstern AWT, Swing, JavaFX & SWT 0
T VerifyListener - Ersetzen einer 0 AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
H JavaFX Timeline II: Verschieben einer ImageView AWT, Swing, JavaFX & SWT 16
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
Ernesto95 JavaFX Return Value nach Beendigung einer Animation AWT, Swing, JavaFX & SWT 15
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
U Was genau ist das Objekt einer affinentransformation? AWT, Swing, JavaFX & SWT 1
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
mac2010 JavaFX Einbindung einer Karte AWT, Swing, JavaFX & SWT 1
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
W Aufrufen einer bestimmten Scene mit if-Bedingung AWT, Swing, JavaFX & SWT 4
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben