Frage

Ich möchte Combobox in eine Zelle von JTable hinzuzufügen.

model=new DefaultTableModel(data,col);
JTableHeader head=new JTableHeader();
head.setBackground(Color.BLUE);
table=new JTable(model);
table.add(head);
JComboBox combo = new JComboBox();
combo.addItem("Names");
combo.addItem("Antony");
combo.addItem("Victor");
combo.addItem("Ramkumar");
table.add(combo);

Aber ich kann die Combobox in der Zelle erhalten. Ist es möglich, Sets Kombinationsfeld?

War es hilfreich?

Lösung

Sie müssen die Table der JTable einzustellen. Es ist besser, die Java-Tutorials zu suchen, aber hier ist eine kurze Erläuterung.

JTable verwendet drei Hauptklassen zur Arbeit:

1) Tablemodel: es der Funktion sagen, wie viele Zeilen und Spalten die Tabelle und die Daten der Tabelle zu dienen, ist es wichtigste Methoden sind getValue (Zeile, Spalte) und setValue (Wert, Zeile, Spalte). Und Feuer Ereignisse die JTable repaints zu informieren.

2) Table: es ist Hauptzweck ist es Komponenten in der JTable Zellen zu ziehen. Diese Komponenten sind nur gemalt: nicht! wenn Sie eine JComboBox ziehen wird es nicht desplegate, wenn Sie darauf klicken oder wenn Sie eine JCheckBox ziehen wont't es wählen / abzuwählen.

3) Table: es ist Hauptzweck es ist eine Komponente innerhalb eines JTableCell zu bearbeiten der Zelle um den Wert zu ziehen. Es empfängt Ereignisse und entscheiden, wann die Bearbeitung zu starten, dann ist es getTableCellEditorComponent Methode aufgerufen wird, um die Editor-Komponente zurückzukehren. Die Komponente zurückgegeben hat Launch-Events, so dass die Table weiß, wann die Bearbeitung zu beenden und den Wert bekommen und es verwendet, den TableModel.setvalue zu nennen ... oder die Bearbeitung abzubrechen.

Damit JComboBox in einem JTable zu zeigen, müssen Sie Ihre eigene Table erstellen, ist keine leichte Aufgabe, wenn Sie es nicht getan haben, bevor.

Andere Tipps

Nehmen Sie an dieser alook Java Tutorial und in dieser Seite suchen „Verwenden ein Kombinationsfeld als Editor "

Versuchen Sie folgendes:. Seine Arbeits für me..click auf der Zelle, die die Combobox sehen

 private void comboloader() {
        try {
            TableColumn gradeColumn = jTable1.getColumnModel().getColumn(0);
            JComboBox comboBox = new JComboBox();

            comboBox.removeAllItems();

            try {
                comboBox.addItem("Item 1");
                comboBox.addItem("Item 2");
                comboBox.addItem("Item 3");

            } catch (NullPointerException e) {
            } catch (Exception e) {
                e.printStackTrace();
            }
            gradeColumn.setCellEditor(new DefaultCellEditor(comboBox));
        } catch (Exception e) {
        }
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top