rendered paste bodyimport java.awt.Component;import javax.swing.AbstractCellEditor;import javax.swing.JSpinner;import javax.swing.JTable;import javax.swing.SpinnerModel;import javax.swing.event.ChangeListener;import javax.swing.table.TableCellEditor;public class SpinnerTableCellEditor extends AbstractCellEditor implements TableCellEditor { private JSpinner editor; public Object[] werte = {"++", "+", "o", "-", "--"}; Object obj = werte[2]; Object grenzeOben = werte[0]; Object grenzeUnten = werte[4]; public SpinnerTableCellEditor() { editor = new JSpinner(new SpinnerModel() { public void setValue(Object arg0) { obj = arg0; } public Object getValue() { return obj; } public Object getPreviousValue() { for(int i = 0; i < werte.length; ++i) { if(werte[i].equals(getValue())) { if(werte[i] == grenzeUnten) { System.out.println(grenzeUnten); return grenzeUnten; } System.out.println(werte[i+1]); return werte[i+1]; } } System.out.println("Hi, you never reach me"); return grenzeUnten; } public Object getNextValue() { for( int i = 0; i< werte.length; ++i) { if ( werte[i].equals(getValue())) { if(werte[i] == grenzeOben) { System.out.println(grenzeOben); return grenzeOben; } System.out.println(werte[i-1]); return werte[i-1]; } } System.out.println("Hi, you never reach me"); return grenzeOben; } public void removeChangeListener(ChangeListener arg0) { // TODO Auto-generated method stub } public void addChangeListener(ChangeListener arg0) { // TODO Auto-generated method stub } }); } public Object getCellEditorValue() { return editor.getValue(); } public Component getTableCellEditorComponent(JTable table, Object werte, boolean isSelected, int zeile, int spalte) { editor.setValue(werte); return editor; }}import java.awt.*;import javax.swing.*;public class Aufgabe2 { public static void main(String[] args) { JTable table = new JTable(new ZylinderTabelle()); // set table size table.setPreferredScrollableViewportSize(new Dimension(1000, 100)); // set cell height table.setRowHeight(table.getRowHeight() + 15); for (int i = 0; i < 25; ++i) { table.getColumnModel().getColumn(i).setCellEditor(new SpinnerTableCellEditor()); } JScrollPane scrollPane = new JScrollPane(table); JPanel contentPane = new JPanel(new BorderLayout()); contentPane.add(scrollPane, BorderLayout.CENTER); JFrame fenster = new JFrame("Zylinder Aufgabe"); fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); fenster.setContentPane(contentPane); fenster.pack(); fenster.setVisible(true); }}