MouseEvent in jTextArea

sos

Mitglied
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
 
Ich weiss ich bin blöd :)) aber das dürfte gleich schwieriger werden, hoffe kann auf dich zurückkommen

vielen dank :)
 
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.
 
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 :
Java:
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
Java:
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?
 
Zuletzt bearbeitet von einem Moderator:
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 :
Java:
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 :
Java:
private String filePath="";
private String beschreibung="";
So vermeidest du das NPE fliegen ... musst allerdings im caller mit
Java:
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/*
 
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 :
Java:
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
 
Zuletzt bearbeitet:
Zurück