Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
KlassenKann eine Variable nicht aus einer Klasse bekommen
Ich hab ein Problem mit einem von mir geschriebenem Programm und ich hab schon mehrere Sachen
probiert aber ich fin den Wurm nicht. :rtfm:
Ich lad mal einen Teil des Quell Codes und ein Danke schon mal im Vorhaus.
Java:
public class Testclass extends JFrame{
public Testclass() {...}
public class UnserListener implements ActionListener{
@Override
public void actionPerformed(ActionEvent ae)
{
String s = textfeldeingabe.getText();
int wert = Integer.valueOf(s).intValue(); // Die Variable wert soll in die folgende Klasse
textarea.setText("" + wert);
}
}
public class ItemHandlerObjekte implements ItemListener {
@Override
public void itemStateChanged(ItemEvent eventobjekte)
{
// hir soll die Variable wert rein
}
Ich wolt fragen ob das Überhaupt geht.
Wenns ganz einfach geht und ich nur blind ober so war könte dann bitte jemand sagen was falsch ist
Wenns nicht geht könte mir bitte jemand sagen wie mans anders schreibt. :toll:
Sry aber ich verstehe nicht was du willst. Rein intuitiv würde ich jetzt sagen, du willst aus deinem ActionListener den ItemListener mit einem Wert aufrufen.
public class UnserListener implements ActionListener{
private int wert;
@Override
public void actionPerformed(ActionEvent ae)
{
String s = textfeldeingabe.getText();
int wert = Integer.valueOf(s).intValue();
textarea.setText("" + wert);
}
}
nach
Java:
public class ItemHandlerObjekte implements ItemListener {
@Override
public void itemStateChanged(ItemEvent eventobjekte) {.....//Die soll dahin übergeben werden
}
Dazu müsste Dein Item Listener die Instanz Deines ActionListeners kennen. Aber das macht eigentlich keinen Sinn.
Wenn Variablen auf einer globalen Ebene relevant sind, dann sollte man diese so deklarieren oder über ein Objekt verwalten, dass in den Instanzen bekannt ist.
Vielleicht beschreibst Du mal was genau Du vorhast.
####EDIT
Noch als Anmerkung: Der Code in der actionPerformed ist der nur zum Testen? Ansonsten macht es wenig Sinn einen String in einen int zu verwandeln, um diesen anschließend gleich wieder zu einem String zu verketten.
Also ich wolte mit dem ActionListener
eine eingabe in eine Textare speichern und
weil ich mit der noch weiterrechnen wolte
hab ich die variable "wert" gleich in ein int gewandelt.(Hoffe das war richtig)
Dann wolt ich die Variable "wert" in den ItemListener
geben weil ich die dort noch verwenden bzw. mit dieser variable rechnen will.
War letztendlich dasselbe was auch oben im Code steht ;-)
Aber sei's drum.
Du könntest im ItemListener den Inhalt der TextArea auslesen. Dann brauchst Du den Wert nicht zusätzlich speichern. Oder Du machst es wie pl4gu33 vorgeschlagen hat und definierst die Variable als Attribut eines Objektes. Beide Listener müssen dann Zugriff auf dieses Objekt haben.
warum nicht einfach wie im ActionListener im ItemListener holen ? wenn du im ActionListener den Wert speicherst und im ItemListener daraufzugreifst ist nicht garantiert, dass du den aktuellen Wert hast, sondern eben den, der beim letzten mal aufrufen des ActionListeners existierte.
Java:
public class ItemHandlerObjekte implements ItemListener {
@Override
public void itemStateChanged(ItemEvent eventobjekte)
{
String s = textfeldeingabe.getText();
int wert = Integer.valueOf(s).intValue();
}