hallo nochmals an alle..
wieder mal ein kleines problemchen dass ich im netz so ein bisschen reserchiert habe jedoch nichts hilfreiches gefunden habe..
also:
habe ne datei mit eine anwendung (ein swing) ihr wisst schon, dort ist die main klasse etc etc..
so..
das programm soll auch ein Tree besitzen, dass auch ein paar sachen tut sobald man auf eines der Tree-Elemente klickt oder so..
das ganze verbindet sich mit einer externen datenbank, und im Tree werden die tabellen und so angezeigt..
das Tree habe ich aber in einer anderen klasse/datei definiert.. weil so habe ich bessere übersicht..
ich habe also die CMainApplikation.java und dort auch einen ordner mit den restlichen dateien, wie CTree.java, CMenu.java etc etc..
jetzt möchte ich die Actions abfangen..
nun möchte ich wissen, wie es zu realisieren ist (wenn überhaupt), dass ich in der CTree klasse in der methode valueChanged(), einen klick auf dem Tree abfange, und sachen bzw. variablen die aber in der Main-Datei sind ändere bzw. anspreche..
als beispiel schreibe ich mal nur das nötige:
in der CMainApplikation.java
im ordner "mypackage" liegt die datei CTree.java:
wie siehts denn aus wenn ich eine andere datei habe wie alle Actions, egal welche das sind und von welche instanzen die kommen..
wenn ich dann zB.
schreibe, könnte ich dann doch in der CActionsClass mit:
ansprechen oder nicht?? wenn ein object übergegeben wird, kann man nicht seine "sachen" ansprechen??
weil ich es probiert habe aber der merkert mir:
can not find symbol:
variable testLabel
muss das überhaupt Object sein, wenn ich einer methode mit this die klasse selbst übergebe? oder gibt es statt Object sowas wie Class??
-------------------------------
ich hoffe ich habe es gut und ausführlich erklärt..
danke
wieder mal ein kleines problemchen dass ich im netz so ein bisschen reserchiert habe jedoch nichts hilfreiches gefunden habe..
also:
habe ne datei mit eine anwendung (ein swing) ihr wisst schon, dort ist die main klasse etc etc..
so..
das programm soll auch ein Tree besitzen, dass auch ein paar sachen tut sobald man auf eines der Tree-Elemente klickt oder so..
das ganze verbindet sich mit einer externen datenbank, und im Tree werden die tabellen und so angezeigt..
das Tree habe ich aber in einer anderen klasse/datei definiert.. weil so habe ich bessere übersicht..
ich habe also die CMainApplikation.java und dort auch einen ordner mit den restlichen dateien, wie CTree.java, CMenu.java etc etc..
jetzt möchte ich die Actions abfangen..
nun möchte ich wissen, wie es zu realisieren ist (wenn überhaupt), dass ich in der CTree klasse in der methode valueChanged(), einen klick auf dem Tree abfange, und sachen bzw. variablen die aber in der Main-Datei sind ändere bzw. anspreche..
als beispiel schreibe ich mal nur das nötige:
in der CMainApplikation.java
Java:
import mypackage;
public class CMainAppilkation
{
//instanz von typ CTree, liegt im package mypackage
public JPanel testPanel = new JPanel();
public CTree tree = new CTree();
public CMainApplikation()
{
this.add(testPanel)
this.add(tree);
}
}
im ordner "mypackage" liegt die datei CTree.java:
Java:
package mypackage;
public class CTree implements TreeSelectionListener
{
//variablen und sachen um Tree aufzubauen
//......
public JTree tree;
public JLabel testLabel = new JLabel("myLabel");
//......
//weiter unten
tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);
tree.addTreeSelectionListener(this);
public void valueChanged(TreeSelectionEvent e)
{
DefaultMutableTreeNode node = (DefaultMutableTreeNode)tree.getLastSelectedPathComponent();
if(node == null)
return;
Object nodeInfo = node.getUserObject();
if(node.isLeaf())
{
//hier möchte ich zB. etwas in der rechten seite ändern, was aber eine variable in der main-datei ist
//zB:
testPanel.setVisible(false);
}
else
{
//hier genau so..
}
}
}
wie siehts denn aus wenn ich eine andere datei habe wie alle Actions, egal welche das sind und von welche instanzen die kommen..
wenn ich dann zB.
Java:
new CActionsClass(this);
Java:
//konstruktor
public CActionsClass(Object ob)
{
ob.testLabel.setVisible(false);
}
weil ich es probiert habe aber der merkert mir:
can not find symbol:
variable testLabel
muss das überhaupt Object sein, wenn ich einer methode mit this die klasse selbst übergebe? oder gibt es statt Object sowas wie Class??
-------------------------------
ich hoffe ich habe es gut und ausführlich erklärt..
danke
Zuletzt bearbeitet: