tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
189
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    chrootdev chrootdev ist offline Mitglied
    Registriert seit
    Feb 2008
    Beiträge
    15
    Hallo,

    ich habe MyTextComponent von JTextComponent abgeleitet und ein paar Methoden überschrieben.

    Code :
    1
    2
    3
    4
    
    public class MyTextComponent extends JTextComponent
    {
    ...
    }

    Mein Problem ist jetzt:

    Folgendes funktioniert:
    Code :
    1
    
    JTextComponent jtcomp = new JTextField();

    Das wiederum nicht mehr:
    Code :
    1
    
    MyTextComponent jtcomp = new JTextField();

    Warum funktioniert das zweite Beispiel nicht, obwohl es von JTextComponent abgeleitet wurde?

    Danke!
     
    mfg chrootdev
    ------------------------------
    Java, C++, Linux

  2. #2
    SE Tutorials.de Gastzugang
    Weil JTextField von JTextComponent abgeleitet ist , und nicht von MyTextComponent. Daher meldet der Compiler hier einen ClassCastError *sollte er zumindest* weil er nicht weis was von deiner Klasse erbt. Ansonsten hättest du eine Mehrfachvererbung was in Java nicht zulässig ist , da :
    JTextField extends JTextComponent
    bereits gegeben ist , müsstest du jetzt also ein eigenes TextField von deiner TextComponent ableiten , also
    MyTextField extends MyTextComponent
     

  3. #3
    Avatar von sheel
    sheel sheel ist gerade online Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.506
    Hi

    Du kannst einer Variable Instanzen ihres Typs und aller abgeleiteten Typen zuweisen.

    In "JTextComponent jtcomp" passt alles rein, was von JTextComponent abgeleitet ist.
    zB. JTextComponent selber, oder JTextField, oder MyTextComponent.
    Alles, was mindestens die Methoden und Variablen hat, die JTextComponent auch hat.

    Um ein JTextField aber in "MyTextComponent jtcomp" zu speichern müsste JTextField alles haben, was MyTextComponent hat (und vielleicht noch mehr). Mit anderen Worten: JTextField müsste in der Hierarchie unter MyTextComponent stehen, also davon abgeleitet sein.

    Gruß
     

  4. #4
    chrootdev chrootdev ist offline Mitglied
    Registriert seit
    Feb 2008
    Beiträge
    15
    Hi,

    danke für die Antworten, jetzt ist es mir klar, das das so nicht geht!

    Gibts eine andere Möglichkeit, außer ein JTextFiled von MyTextComponent abgeleitet zu bauen, das JTextField in MyTextComponent zu bekommen?

    Danke!
     
    mfg chrootdev
    ------------------------------
    Java, C++, Linux

  5. #5
    SE Tutorials.de Gastzugang
    Nun ... es kommt darauf an was du in der MyTextComponent überschreibst ... wenn es möglich ist solltest du dierekt von JTextField ableiten und darin alles überschreiben was du brauchst.
     

Ähnliche Themen

  1. Kontextmenü mit JDialog (oder nur mit JTextComponent)
    Von vfl_freak im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 0
    Letzter Beitrag: 19.09.08, 08:43
  2. Ableitung von TCanvas/TImage
    Von Chronix im Forum Delphi, Kylix, Pascal
    Antworten: 6
    Letzter Beitrag: 21.01.08, 11:11
  3. Ableitung von Vector<E>
    Von theLMF im Forum Java
    Antworten: 3
    Letzter Beitrag: 18.10.07, 08:42
  4. TreeView ableitung, DragDrop?
    Von Trivalik im Forum .NET Web und Kommunikation
    Antworten: 1
    Letzter Beitrag: 20.09.05, 09:42
  5. Mathe :) dif VS Ableitung
    Von vinc5nt im Forum Smalltalk
    Antworten: 0
    Letzter Beitrag: 04.12.01, 16:15

Stichworte