packageproblem? brauche rat!

Status
Nicht offen für weitere Antworten.

gondor

Bekanntes Mitglied
hallo!

ich bekomme fehlermeldungen, wo ich das problem nicht erkenne.

ich habe ein package: articcell.measurment in der sich 3 klassen befinden:

Code:
package articcell.measurement;

import java.sql.*;

import javax.swing.table.*;


/**
 * 

Title: </p>
 * 

Description: </p>
 * 

Copyright: Copyright (c) 2004</p>
 * 

Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class ArticCell_Measurement_ResultSetTableModel extends AbstractTableModel {

    private ResultSet rs;
    private ResultSetMetaData rsmd;

    public ArticCell_Measurement_ResultSetTableModel() {

    }

    public ArticCell_Measurement_ResultSetTableModel(ResultSet aResultSet) {

        rs = aResultSet;

        try {
            rsmd = rs.getMetaData();
        } catch (SQLException e) {
            System.out.println("Fehler " + e);
        }
    }

    /*gibt die Spaltennamen wieder*/
    public String getColumnName(int c) {
        return "";
    }

    /*gibt die Zeilenanzahl wieder*/
    public int getColumnCount() {
        return 0;
    }

    /*gibt das ResultSet zurück*/
    protected ResultSet getResultSet() {
        return rs;
    }

    /*gibt das Objekt an eine Position wieder*/
    public Object getValueAt(int r, int c) {
        return null;
    }

    /*gibt die Zeilenanzahl wieder*/
    public int getRowCount() {
        return 0;
    }


}

fehlermeldung:

"ArticCell_Measurement_ResultSetTabelModel.java": class ArticCell_Measurement_ResultSetTableModel is public; should be declared in a file named ArticCell_Measurement_ResultSetTableModel.java at line 18, column 1
 
hier die anderen 2 klassen:

Code:
package articcell.measurement;

import java.sql.*;
import java.util.*;
import articcell.db.ArticCell_DB_Connection;
import articcell.sql.ArticCell_SQL;

/**
 * 

Title: </p>
 * 

Description: </p>
 * 

Copyright: Copyright (c) 2004</p>
 * 

Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class ArticCell_Measurement_CachingResultSetTableModel extends ArticCell_Measurement_ResultSetTableModel {

    private ResultSet rs;
    private ArrayList cache;

    public ArticCell_Measurement_CachingResultSetTableModel() {

    }

    public ArticCell_Measurement_CachingResultSetTableModel(ResultSet aResultSet) {

        super(aResultSet);

        try {

            cache = new ArrayList();
            int cols = getColumnCount();
            ResultSet rs = getResultSet();

            /* Alle Daten in eine Arrayliste von Object[]-Arrays stellen
               Wir verwenden kein Object[][], da nicht bekannt ist,
               wieviel Zeilen die Ergebnismenge hat.
             */

            while (rs.next()) {
                Object[] row = new Object[cols];
                for (int j = 0; j < row.length; j++) {
                    row[j] = rs.getObject(j + 1);
                }
                cache.add(row);
            }
        } catch (SQLException e) {
            System.out.println("Fehler " + e);
        }
    }

    /*gibt das Objekt an eine Position wieder*/
    public Object getValueAt(int r, int c) {
        if (r < cache.size()) {
            return ((Object[]) cache.get(r))[c];
        } else {
            return null;
        }
    }

    /*gibt die Zeilenanzahl wieder*/
    public int getRowCount() {
        return cache.size();
    }
}

Code:
package articcell.measurement;

import java.sql.*;

/**
 * 

Title: </p>
 * 

Description: </p>
 * 

Copyright: Copyright (c) 2004</p>
 * 

Company: </p>
 * @author not attributable
 * @version 1.0
 */

public class ArticCell_Measurement_ScrollingResultSetTableModel extends ArticCell_Measurement_ResultSetTableModel {

    private ResultSet rs;

    public ArticCell_Measurement_ScrollingResultSetTableModel() {

    }

    public ArticCell_Measurement_ScrollingResultSetTableModel(ResultSet aResultSet) {

        super(aResultSet);

    }

    /*gibt das Objekt an eine Position wieder*/
    public Object getValueAt(int r, int c) {
        try {
            ResultSet rs = getResultSet();
            rs.absolute(r + 1);
            return rs.getObject(c + 1);
        } catch (SQLException e) {
            System.out.println("Fehler " + e);
            return null;
        }
    }

    /*gibt die Zeilenanzahl wieder*/
    public int getRowCount() {
        try {
            ResultSet rs = getResultSet();
            rs.last();
            return rs.getRow();
        } catch (SQLException e) {
            System.out.println("Fehler " + e);
            return 0;
        }
    }

}

außerdem bekomme ich die fehlermeldung:

"ArticCell_Gui_Applikation.java": articcell.measurement.ArticCell_Measurement_ResultSetTableModel is not public in articcell.measurement; cannot be accessed from outside package at line 731, column 21

wenn ich außerhalb des package auf die klassen zugreifen möchte...
 
"ArticCell_Measurement_ResultSetTabelModel.java": class ArticCell_Measurement_ResultSetTableModel is public; should be declared in a file named ArticCell_Measurement_ResultSetTableModel.java at line 18, column 1

Zu Deutsch: Eine public class Namens X muss in einer Datei namens X.java gespeichert sein. Wenn X in einer Datei Y.java ist, ist das falsch (und gibt ein Compilererror).

"ArticCell_Gui_Applikation.java": articcell.measurement.ArticCell_Measurement_ResultSetTableModel is not public in articcell.measurement; cannot be accessed from outside package at line 731, column 21

Zu Deutsch: Um eine Klasse aus einem anderen package zu brauchen, musst du sie als "public" deklarieren (public class Blupp extends Sowieso{... )

Und aus alledem kommt zusammen: Für jede Klasse die "public" ist, muss es eine eigene Datei geben - jede Klasse sollte public sein.
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben