Java und so ne art HTML

E

element

Java und HTML/ JTable speichern

Guten Tag zusammen.

Also folgendes: In der Firma habe ich und mein Kollegen zur Zeit ein Java Projekt am laufen. Ich bin zuständig für das Framework und die Hauptanzeigen. Nun bindet diese Hauptanzeige verschieden JPanels ein. Nun können/sollen die JPanels über die Funktion showMessage Fehlermeldungen/Hilfetexte anzeigen. Zum übergeben der Texte war ein String angedacht. Nun ist aber die Idee aufgetaucht das der User auf den Text auch klicken könnte um z.B. ein requestFocus auzulösen oder auch den Text zu formatieren.
Gibt es nun die Möglichkeit (ist nur eine Idee wenn besere da sind bitte Melden) z.B. wie bei HTML Den Text so zu formatieren oder auch "Hyperlinks"(Also Action-Listener) einzubinden??

mfg element
 
Zuletzt bearbeitet von einem Moderator:
Häh, wie meinen?

-> Du hast 'ne Applikation mit Swing-Gui, right?
-> Und nun willst du dem user die Möglichkeit geben den Text auf _einer_ bestimmten Komponente zu formatieren?

Sorry, aber mir ist nicht klar was du meinst und was das bringen soll.

Versuch doch ein Fallbeispiel zu geben.
 
mhh ok

Also Swing-GUI ist richtig. Ich binde nun in meinem Framwork das JPanel Artikel ein wo Artikel angezeigt und Bearbeitet werden können. Wenn der USer nun z.B. in Dem JTextField txtArtikel einen Flaschen Artikel eingibt soll in meinem JPanel die Fehlermeldung angezeigt werden wie z.B.: "Bitte geben Sie einen gültigen Artikel ein!". Nun soll der User auf Artikel klicken können und es wird ein txtArtikel.requestFocus() ausgeführt. Außerdem soll Artikel z.B. unterstrichen sein.



EDIT:\\

Was ich gefudnen ahbe ist: http://java.sun.com/developer/JDCTechTips/2003/tt1210.html#2

Dort kann ich aber leider keine Funktionen ausführen lassen.
Man könnte zwar ein JLabel benutzen mit einen ActionListener aber am besten wäre es wenn nur "Artikel" anklickbar wäre
 
Zuletzt bearbeitet von einem Moderator:
Ok, jetzt weiß ich was du meinst.

Man könnte zwar ein JLabel benutzen mit einen ActionListener aber am besten wäre es wenn nur "Artikel" anklickbar wäre

Was anderes wäre mir jetzt leider auch nicht eingefallen.

Wenn dir / jemand anders noch was einfällt, nur raus damit......8)
 
Ne tut mir leid das ist absolut nicht das was ich suche. Die Fehlermeldung soll in einem JPanel angezeigt werden
 
@supersucker
Äh im entferntesten es kommt von der gleichen Firma.

@element
Sorry da hab ich was falsch gelesen.
 
Wo wir grade so schön am diskutieren sind:

Bei einem JTable gibt es ja die möglcihekti sich die Spalten selber anzuordnen. Dies kann der User ja per Drag&Drop erledigen. Gibt es nun auch eine möglichkeit diese von User festegelegte anoordnung zu speichern?
 
Joa, da sollte es mehrere Moeglichkeiten geben. Eine Moeglichkeit waere z.B. das JTable Objekt an sich zu speichern, und beim naechsten Start wieder zurueck zu schreiben.
Geht aber sich auch anders.

mfg,
bytepool
 
Ja der gedanke ist mir auch schon gekommen. Allerdings werden Die daten die im JTabel stehen aus einer db geholt deswegen wer es besser und acuh platzsparender wenn ich nur di eposition speichern könnte
 
Einfach nur das JTableHeader Objekt speichern? Sorry, hab solche Sachen schon zu lange nicht mehr gemacht, wie man das am besten hinkriegt muesste ich auch in der API nachschlagen ;)

mfg,
bytepool
 
Also wenn ich versuche das JTAbel zu speichern:
Code:
try {
	XMLEncoder xe = new XMLEncoder(new FileOutputStream("test.xml"));
	xe.writeObject(getJTable());
	xe.close();
} catch (FileNotFoundException e1) {
	e1.printStackTrace();
}
kommt:
Code:
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 1
Continuing ...
java.lang.IllegalAccessException
Continuing ...
java.lang.RuntimeException: failed to evaluate: <unbound>=Class.new();
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement XMLEncoder.writeObject(JTable);
Continuing ...

Und wenn ich versuche das JTableHeader zu speichern:
Code:
try {
	XMLEncoder xe = new XMLEncoder(new FileOutputStream("test.xml"));
	xe.writeObject(getJTable().getTableHeader());
	xe.close();
} catch (FileNotFoundException e1) {
	e1.printStackTrace();
}
kommt:
Code:
java.lang.IllegalAccessException
Continuing ...
java.lang.RuntimeException: failed to evaluate: <unbound>=Class.new();
Continuing ...
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 2
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement XMLEncoder.writeObject(JTableHeader);
Continuing ...
 
Ja, da hatte ich grade erst was zu gelesen:
Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.

Quelle: http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/table/JTableHeader.html

Scheinbar benutzt du eine zu neue Java Version ;)

edit:
Ach, was red ich denn hier, das scheinst du ja schon zu benutzen...
Ich kannte bis dato nur serializable, habe aber auch die letzten 3 Jahre nicht mehr mit Swing GUIs gearbeitet. Sorry, kenn ich mich nicht mehr mit aus.

mfg,
bytepool
 
Zuletzt bearbeitet:
Also ich würde 1.5 nciht unbedingt als neu bezeichen.

Also gibt es keine Möglcihekit zu speichern?
 
Siehe mein edit. Gehen tut's bestimmt, aber Java hat sich scheinbar die letzten 3 Jahre doch zu stark veraendert als dass ich noch mitreden koennte ;)

edit:
du solltest aber wahrscheinlich noch einen BufferedOutputStream vorschalten. Keine Ahnung ob es daran liegt, moeglich isses.

Code:
XMLEncoder e = new XMLEncoder(
    new BufferedOutputStream(
        new FileOutputStream("Test.xml")));

mfg,
bytepool
 
Zuletzt bearbeitet:
Siehe mein edit. Gehen tut's bestimmt, aber Java hat sich scheinbar die letzten 3 Jahre doch zu stark veraendert als dass ich noch mitreden koennte ;)

edit:
du solltest aber wahrscheinlich noch einen BufferedOutputStream vorschalten. Keine Ahnung ob es daran liegt, moeglich isses.

Code:
XMLEncoder e = new XMLEncoder(
    new BufferedOutputStream(
        new FileOutputStream("Test.xml")));

mfg,
bytepool


Ok Schade das mit dem BufferedOutputStream geht leider auch nciht
 

Ähnliche Themen

wer kann mir anhand eines beispiels mein problem lösen

Zurück
Oben