Hallo,
ich wollte alle aushilfsklassen in einen Extra-ordner innerhalb meiner Package verschieben. Gleich mit der ersten klasse gibts ein Problem: Eclipse sagt, dass die nicht sichtbar ist. Alle ordner usw wurde in Eclipse erstellt.
Package fhnclient:
beinhaltet alle "Hauptklassen": Fenster, frames usw.
Package fhnclient.libs:
beinhaltet, halt, die libs wie derby, jdic usw. - die jars habe ich ohne weiteres im Build Path aufgenommen, funktioniert alles
Package fhnclient.libs.klassen:
soll die aushilfsklassen beinhalten. Erste Klasse, die Probleme macht, begrenzt die Anzahl der Zeichen, die in einem Textfeld eingegeben werden können:
in der "Hauptklasse":
Es funktioniert alles wunderbar wenn die Klasse in Pkg. fhnclient liegt. Ich habe schon nach möglichkeiten gesucht, was mit BuildPath zu machen. Oder muss ich die aushilfsklassen in ein jar packen und dann in buildpath einbinden?
ich wollte alle aushilfsklassen in einen Extra-ordner innerhalb meiner Package verschieben. Gleich mit der ersten klasse gibts ein Problem: Eclipse sagt, dass die nicht sichtbar ist. Alle ordner usw wurde in Eclipse erstellt.
Package fhnclient:
beinhaltet alle "Hauptklassen": Fenster, frames usw.
Package fhnclient.libs:
beinhaltet, halt, die libs wie derby, jdic usw. - die jars habe ich ohne weiteres im Build Path aufgenommen, funktioniert alles
Package fhnclient.libs.klassen:
soll die aushilfsklassen beinhalten. Erste Klasse, die Probleme macht, begrenzt die Anzahl der Zeichen, die in einem Textfeld eingegeben werden können:
Code:
package fhnclient.libs.klassen;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
// JTextComponent textComponent = new JTextField();
// AbstractDocument doc = (AbstractDocument)textComponent.getDocument();
// doc.setDocumentFilter(new FixedSizeFilter(10));
class FixedSizeFilter extends DocumentFilter {
int maxSize;
// limit is the maximum number of characters allowed.
public FixedSizeFilter(int limit) {
maxSize = limit;
}
// This method is called when characters are inserted into the document
public void insertString(DocumentFilter.FilterBypass fb, int offset, String str,
AttributeSet attr) throws BadLocationException {
replace(fb, offset, 0, str, attr);
}
// This method is called when characters in the document are replace with other characters
public void replace(DocumentFilter.FilterBypass fb, int offset, int length,
String str, AttributeSet attrs) throws BadLocationException {
int newLength = fb.getDocument().getLength()-length+str.length();
if (newLength <= maxSize) {
fb.replace(offset, length, str, attrs);
} else {
throw new BadLocationException("New characters exceeds max size of document", offset);
}
}
}
Code:
import fhnclient.libs.klassen.FixedSizeFilter; // Fehlermeldung:"The type fhnclient.libs.klassen.FixedSizeFilter is not visible"
//...............
// irgendwo in der Klasse:
JTextComponent atitel=new JTextField();
AbstractDocument atiteldoc=(AbstractDocument)atitel.getDocument();
atiteldoc.setDocumentFilter(new FixedSizeFilter(50)); // Fehlermeldung: FixedSizeFilter cannot be resolved to a type