Hallo Zusammen,
wie es die Überschrift schon vermuten lässt beschäftigt mich eine ComboBox im jTable. Im Screenshot sieht man wie es momentan aussieht:
Ziel ist es, dass nur 1 Combobox in der Spalte "B" jeweils zu einer potentielle Folge da ist, also nicht 3 ComboBoxen wie hier bei der ersten Folge ist. Die Größe der Combobox ist egal, sie kann gerne weiterhin in der ersten Zeile sein und muss nicht unbedingt alle 3 Zeilen umfassen. Die Berechnung die dahinter steckt sollte auch kein Problem sein. Allerdings wäre es natürlich toll wenn man einzelne Zellen ansprechen könnte, bei meiner jetztigen Programmierung geht es um die ganzen Spalten. Hier der Quelltext, vielleicht kann mir da jemand weiterhelfen.
wie es die Überschrift schon vermuten lässt beschäftigt mich eine ComboBox im jTable. Im Screenshot sieht man wie es momentan aussieht:

Ziel ist es, dass nur 1 Combobox in der Spalte "B" jeweils zu einer potentielle Folge da ist, also nicht 3 ComboBoxen wie hier bei der ersten Folge ist. Die Größe der Combobox ist egal, sie kann gerne weiterhin in der ersten Zeile sein und muss nicht unbedingt alle 3 Zeilen umfassen. Die Berechnung die dahinter steckt sollte auch kein Problem sein. Allerdings wäre es natürlich toll wenn man einzelne Zellen ansprechen könnte, bei meiner jetztigen Programmierung geht es um die ganzen Spalten. Hier der Quelltext, vielleicht kann mir da jemand weiterhelfen.
Java:
public void combosErstellen(int spalte, JTable table){
String[] values = new String[]{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
TableColumn comboColumn = table.getColumnModel().getColumn(spalte);
comboColumn.setCellEditor(new MyComboBoxEditor(values));
comboColumn.setCellRenderer(new MyComboBoxRenderer(values));
}
Java:
package fmea;
import java.awt.Component;
import javax.swing.*;
import javax.swing.table.TableCellRenderer;
class MyComboBoxRenderer extends JComboBox implements TableCellRenderer {
public MyComboBoxRenderer(String[] items) {
super(items);
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (isSelected) {
setForeground(table.getSelectionForeground());
super.setBackground(table.getSelectionBackground());
} else {
setForeground(table.getForeground());
setBackground(table.getBackground());
}
// Select the current value
setSelectedItem(value);
return this;
}
}
Java:
package fmea;
import javax.swing.DefaultCellEditor;
import javax.swing.JComboBox;
public class MyComboBoxEditor extends DefaultCellEditor {
public MyComboBoxEditor(String[] items) {
super(new JComboBox(items));
}
}