tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von SE
  • 1 Beitrag von SE
ERLEDIGT
JA
ANTWORTEN
6
ZUGRIFFE
303
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    sos sos ist offline Mitglied Silber
    Registriert seit
    Feb 2011
    Beiträge
    50
    Hallo liebe leute,

    wie kann man feststellen ob der Mausklick innerhalb einer JTextArea oder in Jtree stattfindet?

    könnte mir eventuell da jemand helfen?

    danke schön
     

  2. #2
    SE Tutorials.de Gastzugang
    Also mir würde jetzt Component.addMouseListener(MouseListener) einfallen.
    sos bedankt sich. 

  3. #3
    sos sos ist offline Mitglied Silber
    Registriert seit
    Feb 2011
    Beiträge
    50
    Ich weiss ich bin blöd ) aber das dürfte gleich schwieriger werden, hoffe kann auf dich zurückkommen

    vielen dank
     

  4. #4
    SE Tutorials.de Gastzugang
    Klar ... ich würde dich nur drum bitten dein Problem hier im Forum zu posten und nicht per PN das andere auch was davon haben.
     

  5. #5
    sos sos ist offline Mitglied Silber
    Registriert seit
    Feb 2011
    Beiträge
    50
    Hi,
    Ich hier wieder
    Ich muss nun nach dem ich einer Datei in mein Tree Selektiere, die Beschreibung dieser Datei
    in der JTextArea unterbringen dafür habe ich folgendes versucht :
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    private JMenuItem getJmiDokBeschreiben(){
            JMenuItem jmiBeschreiben = new JMenuItem("Beschreibung speichern.");
                
                /***Aufgabe 5 EventHandling implementieren zur Suche****/
                
                jmiBeschreiben.addActionListener(new ActionListener() {
                 
                    public void actionPerformed(ActionEvent e) {
                        TreePath [] treePaths = jTree.getSelectionPaths();
                    
                        
                    if(treePaths != null)
                         jtaBeschreibung.setText(treePaths.toString());
                        
                   
                    }
                });
                return jmiBeschreiben;
                
                
            }
    als Ergebnis kommt in meiner Area folgender Beitrag :

    [Ljavax.swing.tree.TreePath;@6a47a0d4

    stattdessen brauche ich die Beschreibung von der Datei. dafür habe ich die Klasse
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    public abstract class Dokument extends Knoten {
        
        private static final long serialVersionUID = 1L;
    /*Darstellungssymbol für Dokumente */ 
        public static final Object icon='o';
        
     
        /*Felder und Zugriffsmethoden*/
        private String filePath;
        public void setFilePath(String path) {this.filePath = path;}
        public String getFilePath() {return filePath;}
        
        private String beschreibung;
        public void setBeschreibung(String beschreibung) {this.beschreibung = beschreibung;}
        public String getBeschreibung() {return beschreibung;}
        ....

    nur wenn ich eine Instanz erzeuge :

    Dokument doc = null;

    und in der Action doc.getBeschreibung(); ausgebe wirft das Exception.

    Könnt ihr mir bitte helfen?
     

  6. #6
    SE Tutorials.de Gastzugang
    Wow ... das is aber ne ganze Menge wirres Zeug.

    Auf das mit dem anonymen EventHandler geh ich jetzt mal nicht ein weil mir das selbst zu wirr ist und man ohne den Rest der Klasse da nur schlecht rausbekommt ob das so überhaupt lauffähig ist.

    Was deine abstrakte Klasse angeht *was zur ... public abstract class XXX extends YYY ... jetzt bin ich total verwirrt* : ist mir schon klar das da Exceptions fliegen ... und das dürften sogar ne ganze Menge NPE sein ...

    1) Wenn die Instanz deiner Klasse NULL ist ... du also keine Referenz auf ein konkretes Objekt hast fliegt schon mal die erste NPE ... hier musst du also dafür sorgen das die Referenz auf keinen Fall NULL ist ... einfach sowas hier davor setzen :
    Code java:
    1
    2
    3
    4
    
    if(doc==null)
    {
        return -1; //oder vergleichbares ... und dann vom caller prüfen ...
    }

    Dann fliegen die nächsten zwei NPE bei deinen gettern ... du kannst schließlich nichts returnen was es nicht gibt. Daher solltest du deine Strings zumindest initialsieren :
    Code java:
    1
    2
    
    private String filePath="";
    private String beschreibung="";
    So vermeidest du das NPE fliegen ... musst allerdings im caller mit
    Code java:
    1
    
    if(result.equals(""))
    darauf prüfen und entsprechend reagieren.

    Das sind jetzt so die Punkte die man rauslesen kann ...
    Für alles andere brauchen wir mehr Code und den konkreten StackTrace ... sonst wird das wie die Suche nach dem Heu im Nadelhaufen ... *ja ich weis ... ich bin halt Metaler \m/*
    sos bedankt sich. 

  7. #7
    sos sos ist offline Mitglied Silber
    Registriert seit
    Feb 2011
    Beiträge
    50
    Erledigt! war eigentlich einfache Geschichte und falls es jemandem interessiert hier ist die Lösung. um einem Knoten eine in der JTextArea getippte Beschreibung zu speichern :
    Code java:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    
    private JMenuItem getJmiDokBeschreiben() {
            JMenuItem jmiBeschreiben = new JMenuItem("Beschreibung speichern.");
     
            jmiBeschreiben.addActionListener(new ActionListener() {
     
                public void actionPerformed(ActionEvent e) {
     
                    DefaultMutableTreeNode lastNode = (DefaultMutableTreeNode) jTree
                            .getLastSelectedPathComponent();
                    if (lastNode == null)
                        return;
                    if (lastNode instanceof Dokument) {
     
                        ((Dokument) lastNode).setBeschreibung(jtaBeschreibung
                                .getText());
     
                    }
     
                    System.out.println("\"Beschreibung speichern gewählt...");
                }
            });
            return jmiBeschreiben;
     
        }
    mfg
    Geändert von sos (22.10.11 um 09:50 Uhr)
     

Ähnliche Themen

  1. PopupMenu und MouseEvent
    Von sos im Forum Java
    Antworten: 4
    Letzter Beitrag: 10.10.11, 12:30
  2. Bilderwechsel per MouseEvent
    Von Super_Günther im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 26.06.10, 01:33
  3. paintComonent nach MouseEvent
    Von surfer_cid im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 19.02.09, 14:41
  4. MouseEvent bei einem JTree
    Von BlockeR im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 15
    Letzter Beitrag: 17.10.08, 11:06
  5. MouseEvent weiterreichen
    Von slang im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 1
    Letzter Beitrag: 02.06.06, 01:49