Portal > Foren > Java > Desktop-Applikationen und Grafik > JEditorPane und JTextField - Inhalte begrenzen?
Antwort
 
Themen-Optionen
Alt 06.03.2007, 17:01 Nach oben    #1
Benutzer
 
Registriert seit: 01.02.2005
Beiträge: 64
Standard JEditorPane und JTextField - Inhalte begrenzen?

Hallo,

ich habe folgendes Problem:

Ich schreibe gerade an einer Java-Applikation, die das Backend für ein CMS bilden soll.

Bei einem Assistenten für einen der Bereiche der HP (Ankündigungen), soll der Nutzer eine Kurzform der Ankündigung selbst eingeben (Wenn nicht, dann generiert das Programm aus der Ankündigung selbst einen, indem es die ersten 100 zeichen nimmt und mit "... [mehr]" beendet).

Außerdem soll ein Datum angegeben werden, bis wann die Ankündigung auf der Homepage erscheint.

Screenshot im Anhang

Meine Probleme:
  1. Die Kurzform wird in eine JEditorPane eingegeben (mit HTMLEditorKit) und man soll keinen Text länger als eben 100 Zeichen tippen können
  2. Bei den Textfeldern (JTextField), in denen man Tag, Monat und Jahr eingibt, soll die Textlänge auf 2, bzw. 4 Zeichen begrenzt werden.
    Außerdem soll man nur Ziffern eíngeben können (wird z.Zt. beim Klick auf "weiter" über Integer#parseInt und der daraus folgenden Exception getestet)
Ich habe versucht bei der JEditorPane über einen Listener die Änderung des Inhalts zu stoppen, wenn der Text zu lang wurde - aber habe dabei entweder nur Exceptions kassiert
Code:
if(pane.getText().length()>100)
{
     String speicher = pane.getText().substring(0,99);
     pane.setText(speicher);
}
oder man kann den Text nicht mehr editieren

Code:
if(pane.getText().length()>100)
{
     pane.setEnabled(false);
     //oder setEditable(false);
}
Hat irgendeiner eine Idee?

So, hier noch der Anhang - hatte grade eben den Post ausversehen abgeschickt
Angehängte Grafiken
Dateityp: jpg ihm.jpg (48,5 KB, 17x aufgerufen)
__________________
  1. My software never has bugs. It just develops random features!
  2. Beta. Software undergoes beta testing shortly before it's released. Beta is Latin for 'still doesn't work.'
  3. There are two ways to write error-free programs. Only the third one works.

Geändert von Ben (06.03.2007 um 17:25 Uhr).
Binary ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2007, 21:33 Nach oben    #2
Projektleiter
 
Registriert seit: 30.11.2005
Ort: Bottrop
Beiträge: 1.108
Standard

Einfachster Weg ist ein eigenes Document festzulegen, dass bei insertString nur dann super aufruft, wenn weniger als 100 Zeichen drin sind.
pago ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.03.2007, 13:19 Nach oben    #3
Benutzer
 
Benutzerbild von xabbuh
 
Registriert seit: 03.12.2005
Ort: Osnabrück
Beiträge: 75
Standard

Zitat:
Zitat von Binary Beitrag anzeigen
Ich habe versucht bei der JEditorPane über einen Listener die Änderung des Inhalts zu stoppen, wenn der Text zu lang wurde - aber habe dabei entweder nur Exceptions kassiert
Code:
if(pane.getText().length()>100)
{
     String speicher = pane.getText().substring(0,99);
     pane.setText(speicher);
}
oder man kann den Text nicht mehr editieren

Code:
if(pane.getText().length()>100)
{
     pane.setEnabled(false);
     //oder setEditable(false);
}
Hast du dazu ein wenig detailliertere Informationen? Ws für einen Listener hast du eingerichtet? Was für Exceptions erhälst? Etwas mehr Quellcode könnte wohl ebenfalls helfen.

Grüße
xabbuh ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.03.2007, 15:22 Nach oben    #4
Benutzer
 
Registriert seit: 01.02.2005
Beiträge: 64
Standard

Quelltext kann ich dir keinen geben, da ich atm an der Überprüfung des Datum arbeite (Datum möglich und in der Zukunft?) und somit die anderen Exceptions nicht brauchen kann, habe ich die Überprüfung der EditorPanes z.Zt. auf ein
Textlänge >0 beschränkt...

Aber sinngemäß war der Quellcode so:

Code:
pane.addCaretListener(new CaretListener()
{
      public void caretUpdate()
      {
          if(pane.getText().length()>=100)
            {
                String test = pane.getText().substring(0,99);
                pane.setText(test);
            }
 
      }
});
__________________
  1. My software never has bugs. It just develops random features!
  2. Beta. Software undergoes beta testing shortly before it's released. Beta is Latin for 'still doesn't work.'
  3. There are two ways to write error-free programs. Only the third one works.

Geändert von Binary (07.03.2007 um 15:24 Uhr). Grund: ...wieder zu früh abgeschickt... Bei Codeeingabe <TAB> und danach <Space> ergibt "Speichern"
Binary ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.03.2007, 16:40 Nach oben    #5
Benutzer
 
Registriert seit: 01.02.2005
Beiträge: 64
Standard

Habe da grade noch ein Problem festgestellt:

Wenn ich die JEditorPane über getText().length() begrenzen will:

Ein System.out.println(pane.getText()); gibt bei einer leeren EditorPane ja schon das ganze Grundgerüst aus:
PHP-Code:
<HTML>
 <
HEAD>
 
 </
HEAD>
 <
BODY>
   <
p style="margin-top:0">
 
   </
p>
  </
BODY>
</
HTML 
Sprich: Anzeige leer != Inhalt leer...

Gibts eine Möglichkeit an den tatsächlich angezeigten Text ranzukommen, ohne die Tags zu berücksichtigen??
__________________
  1. My software never has bugs. It just develops random features!
  2. Beta. Software undergoes beta testing shortly before it's released. Beta is Latin for 'still doesn't work.'
  3. There are two ways to write error-free programs. Only the third one works.
Binary ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
JTextField + Eingabeprüfung auf JButton reagieren (nicht Enter) risa Desktop-Applikationen und Grafik 16 02.04.2006 23:57
jtextfield länge des textes begrenzen debian inside Desktop-Applikationen und Grafik 1 09.06.2005 10:04
JEditorPane Text hinzufügen ohne ganzes Dokument neu einzuladen milanwb Desktop-Applikationen und Grafik 13 15.05.2005 16:01
Inhalt von JTextField einlesen klappt nicht Nightsky Allgemeine Java-Programmierung 3 27.09.2004 09:22
Änderung der Textfarbe im JEditorPane mabe2k Desktop-Applikationen und Grafik 1 28.08.2004 23:09


Alle Zeitangaben in WEZ +2. Es ist jetzt 05:40 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44