int columnParticipantIndex = colModel.getColumnIndex(JFritz .getMessage("participant"));
int columnParticipantIndex = jfritz.getJframe().getCallerTable().getColumnIndex("participant");
    private void createColumnWidths() {        Debug.msg("Create Columns");        int columnCount = jfritz.getJframe().getCallerTable().getColumnCount();        int fixedColumnsWidth = 0; // width of all columns except "number" and        // "participant"        TableColumnModel colModel = jfritz.getJframe().getCallerTable()                .getColumnModel();        columnWidth = new int[columnCount];        columnStart = new int[columnCount];        for (int i = 0; i < columnCount; i++) {            String columnName = colModel.getColumn(i).getHeaderValue()                    .toString();            if (columnName.equals(JFritz.getMessage("type"))) {                // Icon, same Width                columnWidth[i] = colModel.getColumn(i).getWidth() - 10;                // Minimum size of type-column (icon)                if (columnWidth[i] < 20)                    columnWidth[i] = 20;            } else {                // smaller font size: reduce width                columnWidth[i] = colModel.getColumn(i).getWidth() - 20;            }            columnStart[i] = 0;        }        // Rest width for columns "number" and "participant"        // ensure, that restWidth >= 150        int restWidth = 0;        do {            fixedColumnsWidth = 0;            int columnWithMaxWidth = 0;            Debug.msg(columnCount + " Spalten");            for (int i = 0; i < columnCount; i++) {                String columnName = colModel.getColumn(i).getHeaderValue()                .toString();                                Debug.msg(i + ": " + columnName);                if (!(columnName.equals(JFritz.getMessage("number")))                        && (!columnName.equals(JFritz.getMessage("participant")))) {                     if (columnWidth[i] > columnWidth[columnWithMaxWidth]) columnWithMaxWidth = i;                    fixedColumnsWidth += columnWidth[i];                           }            }                                    restWidth = (int) report.getPageDefinition().getWidth()                    - fixedColumnsWidth;                        // shrink biggest column by 5 pixel            if (restWidth < 150) {                columnWidth[columnWithMaxWidth] -= 5;            }        } while (restWidth < 150);        int columnNumberIndex = colModel.getColumnIndex(JFritz                .getMessage("number"));        double columnNumberWidth = colModel.getColumn(columnNumberIndex)                .getWidth();        int columnParticipantIndex = colModel.getColumnIndex(JFritz                .getMessage("participant"));        double columnParticipantWidth = colModel.getColumn(                columnParticipantIndex).getWidth();        columnWidth[columnNumberIndex] = (int) ((columnNumberWidth / (columnNumberWidth + columnParticipantWidth)) * restWidth);        columnWidth[columnParticipantIndex] = (int) ((columnParticipantWidth / (columnNumberWidth + columnParticipantWidth)) * restWidth);        int startPos = 0;        for (int i = 0; i < columnCount; i++) {            columnStart[i] = startPos;            startPos += columnWidth[i];        }    }