non-static variablen benutzen

plammy

Bekanntes Mitglied
hi..
ich will daten aus textfelder speichern.. das problem ist das sobald ich die variablen in der klasse non-static mache, werden nur 0-en statt in den textfeldern eingegeben Zahlen gespeichert .. Wenn ich aber die Variablen static lasse, kann ich keine leere Datei mehr erstellen, da die vorigen Werten abgespeichert wurden und immer wieder zeichnet...

Java:
public class CreateFile extends JPanel implements ActionListener
{
  
....

static int headerW;
static int headerH;
static int contentW;
static int contentH;
static int footerW;
static int footerH; 
static int tile1W;
static int tile1H;
static int tile2W;
static int tile2H;
static int tile3W;
static int tile3H;
static int bausteinW;
static int bausteinH;
static int bausteinOrangeW;
static int bausteinOrangeH;
static String websiteTF;
static String bausteinTF;
...
Java:
public class GUI extends JFrame implements ActionListener {

..
 public void actionPerformed(ActionEvent object) {
 //Speichern
        if (object.getSource() == save){
         
          
                JFileChooser fc = new JFileChooser();  

                String _headerW = Integer.toString(CreateFile.headerW)+"\r\n";
                String _headerH = Integer.toString(CreateFile.headerH)+"\r\n";
                String _contentW = Integer.toString(CreateFile.contentW)+"\r\n";
                String _contentH = Integer.toString(CreateFile.contentH)+"\r\n";
                String _footerW = Integer.toString(CreateFile.footerW)+"\r\n";
                String _footerH = Integer.toString(CreateFile.footerH)+"\r\n";
                String _tile1W = Integer.toString(CreateFile.tile1W)+"\r\n";
                String _tile1H = Integer.toString(CreateFile.tile1H)+"\r\n";
                String _tile2W = Integer.toString(CreateFile.tile2W)+"\r\n";
                String _tile2H = Integer.toString(CreateFile.tile2H)+"\r\n";
                String _tile3W = Integer.toString(CreateFile.tile3W)+"\r\n";
                String _tile3H = Integer.toString(CreateFile.tile3H)+"\r\n";
                String _bausteinW = Integer.toString(CreateFile.bausteinW)+"\r\n";
                String _bausteinH = Integer.toString(CreateFile.bausteinH)+"\r\n";
                String _bausteinOrangeW = Integer.toString(CreateFile.bausteinOrangeW)+"\r\n";
                String _bausteinOrangeH = Integer.toString(CreateFile.bausteinOrangeH)+"\r\n";
                
                int returnVal = fc.showSaveDialog(this);  
                
                if (returnVal == JFileChooser.APPROVE_OPTION)
                {
                    File saveFile = new File(fc.getSelectedFile()+".txt");  
                  
                    BufferedWriter bw;
                    try 
                        
                    {
                        bw = new BufferedWriter(new FileWriter(saveFile));

                        bw.write(_headerW);
                        bw.write(_headerH);
                        bw.write(_contentW);
                        bw.write(_contentH);
                        bw.write(_footerW);
                        bw.write(_footerH);
                        bw.write(_tile1W);
                        bw.write(_tile1H);
                        bw.write(_tile2W);
                        bw.write(_tile2H);
                        bw.write(_tile3W);
                        bw.write(_tile3H);
                        
                        for(int i=0; i<=CreateFile.editPanel.rectangles.size();i++){
                            bw.write("#");
                            bw.write(_bausteinW);
                            bw.write("*");
                            bw.write(_bausteinH);
                        }
                        
                         for(int i=0; i<=CreateFile.editPanel.rectangles2.size();i++){
                            bw.write("!");
                            bw.write(_bausteinOrangeW);
                            bw.write("-");
                            bw.write(_bausteinOrangeH);
                        }
                         
                        bw.close();
                    } catch(IOException e){
                        System.out.println("Fehler beim Schreiben der Datei. Überprüfen Sie vielleicht Ihre Angaben.");
                    }
                }
        }
 
S

SlaterB

Gast
> das problem ist das sobald ich die variablen in der klasse non-static mache, werden nur 0-en statt in den textfeldern eingegeben Zahlen gespeichert

ohne entsprechenden Code kann man nur raten, was du dabei falsch machst,
z.B. speicherst du die Werte von einem zweiten GUI-Objekt, welches nicht das erste mit Werten != 0 und Anzeige auf dem Bildschirm ist
 

plammy

Bekanntes Mitglied
ich würde gerne mehr code posten aber der ist über 1000 zeilen pro klasse...

also in der Klasse CreateFile werden die ganzen Textfelder wo die Eingaben gemacht werden deklariet und initialisiert. In der Klasse GUI werden dann die Benutzereingaben die gemacht wurden in der Textfelder in CreateFile gespeichert
 
S

SlaterB

Gast
die letzten zwei Sätze sind keine ausrechende Information um etwas neues beizutragen, wie du dir sicher denken kannst,
nur als Anmerkung bevor du dich wunderst warum ich gar nichts schreibe ;)

oder doch:
ob doppelte Objekte im Spiel sind, meine Vermutung, läßt sich allein schon durch eine Ausgabe im Konstruktor ziemlich sicher bestätigen

> ich würde gerne mehr code posten aber der ist über 1000 zeilen pro klasse...

wie immer kein Grund, man kann testweise alles und jeden kürzen,
allein dein geposteter Code würde mit EINER Variable headerW schon dasselbe beschreiben,

von all dem Rest hat 99% keine Auswirkung, kann einfach weg und das Problem ist immer noch da,
was verlierst du wenn du ButtonXY zum Malen von Rechteck Z streichst?
ist nur eine Frage des Fleiß, anfangs auch des Könnens, aber Übung macht den (Maler-)Meister, selbst beim Streichen
 
Zuletzt bearbeitet von einem Moderator:
V

vanny

Gast
Um SlaterB in kurz beizupflichten:

Bau dir ein kleines Testprogramm und versuche den Fehler zu reproduzieren oder eine neue, funktionsfähige, strukturierte Möglichkeit zu finden. 10 Zeilen Code nicht zu verstehen ist ok aber 1k Zeilen Code wohl eher nicht. ^^

Gruß Vanny
 

njans

Top Contributor
Dein generelles Problem ist eher Objektorientierung. Du Musst, wenn du die Variablen nicht als static modifizierst, diese variablen an einem spezifischen Objekt ändern. Und das müsstest du dann auch zugänglich machen, so, dass du immer genau auf diesem Objekt arbeitest.
 

bERt0r

Top Contributor
Ich frage mich auch, wie du mit den Problemen die du bisher hier im Forum hattest auf mehrere 1000 Zeilen Code pro Klasse gekommen bist. Da waren teilweise so grundlegende Dinge dabei, das kann doch gar nicht funktionieren. Allein der Code den du hier gepostet hast (und den keiner versteht) zeigt, dass du nicht wirklich was du da eigentlich machst bzw. machen willst.
Dein Problem hat auch ganz sicher nicht mit static Variablen zu tun. Man sollte verstehen was static ist bevor man überhaupt versucht eine GUI zu entwickeln. Ansonsten kann ich vanny nur beipflichten: Fang von 0 an und bau ein Testprogramm in dem genau der Fehler auftritt, der dir zu schaffen macht (und kein anderer).
 

Harry Kane

Top Contributor
> das problem ist das sobald ich die variablen in der klasse non-static mache, werden nur 0-en statt in den textfeldern eingegeben Zahlen gespeichert

ohne entsprechenden Code kann man nur raten, was du dabei falsch machst,
z.B. speicherst du die Werte von einem zweiten GUI-Objekt, welches nicht das erste mit Werten != 0 und Anzeige auf dem Bildschirm ist
...oder du erzeugst in der actionPerformed von GUI eine neue CreateFile Instanz und versuchst da die Werte rauszuholen. Das geht natürlich nicht weil bei einer frischen Instanz noch keine Werte drin sind. Angesicht deines Codeschnipsels hier is dies vermutlich der Fall.
Die Klase Gui muss die Instanz von CreateFile, in der die Textfelder geändert worden sind, kennen!
Das sind übrigens absolute basics.
Ich habe den Eindruck dass du mit dem was du tun sollst komplett überfordert bist. Musst du dein Projekt für Schule/Uni machen oder nur zum Privatvergnügen?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Zugriff auf Variablen eines Objektes ohne sie auf static zu setzen AWT, Swing, JavaFX & SWT 9
M JavaFX Non-static method 'widthProperty()' cannot be referenced from a static context AWT, Swing, JavaFX & SWT 4
J Swing The serializable class FMFrame does not declare a static final serialVersionUID field of type long AWT, Swing, JavaFX & SWT 5
M Swing Public Static GUI für CRM / ERP AWT, Swing, JavaFX & SWT 6
J Swing JDialog mit static-Funktion anzeigen -> Rückgabewert AWT, Swing, JavaFX & SWT 3
Spin Innere Klasse : kein static? AWT, Swing, JavaFX & SWT 8
J serializable class GUI does not declare a static final s. AWT, Swing, JavaFX & SWT 2
G Probleme mit static Methoden in JFrame/JDialog AWT, Swing, JavaFX & SWT 7
F actionPerformed und static? AWT, Swing, JavaFX & SWT 20
F Variablen an eine Form binden? AWT, Swing, JavaFX & SWT 2
S JavaFX Variablen in einem FXML File verwenden AWT, Swing, JavaFX & SWT 8
L Auf Variablen zugreifen AWT, Swing, JavaFX & SWT 6
S 2D-Grafik Problem mit Variablen AWT, Swing, JavaFX & SWT 4
J JavaFX Zugriff auf FXML-Variablen eines anderen Controllers AWT, Swing, JavaFX & SWT 2
Paul15 ActionListener Variablen AWT, Swing, JavaFX & SWT 13
F MouseMotionListerener & Verfügbarkeit von Variablen AWT, Swing, JavaFX & SWT 5
B Event Handling MouseListener Behält seine Variablen, auch wenn ich ein neus Objekt erstelle AWT, Swing, JavaFX & SWT 2
T Einen Variablen Wert in einem TextField AWT, Swing, JavaFX & SWT 4
H SWT NullPointerException bei Zugriff auf Variablen des Hauptfensters AWT, Swing, JavaFX & SWT 6
B Variable ist leer / Scope von Variablen AWT, Swing, JavaFX & SWT 2
P Variablen in einem ActionListener zurücksetzen AWT, Swing, JavaFX & SWT 6
N Variablen in Events AWT, Swing, JavaFX & SWT 4
C SWT Textfeld mit festem und variablen Inhalt AWT, Swing, JavaFX & SWT 13
O Variablen an anonyme Funktion AWT, Swing, JavaFX & SWT 10
F Variablen zwischen Frames AWT, Swing, JavaFX & SWT 5
N Variablen an JDialog übergeben AWT, Swing, JavaFX & SWT 2
hdi Fenster mit variablen Components AWT, Swing, JavaFX & SWT 3
isowiz Wie kann ich Variablen aus einer Innerklasse heraus ändern? AWT, Swing, JavaFX & SWT 5
B Variablen-Namen erfragen AWT, Swing, JavaFX & SWT 5
A problem mit variablen und dialod AWT, Swing, JavaFX & SWT 2
N JLabel o.ä. mit Variablen verknüpfen AWT, Swing, JavaFX & SWT 10
S Wie Variablen Übergabe an Dialog?? AWT, Swing, JavaFX & SWT 2
M variablen uebergabe ?? AWT, Swing, JavaFX & SWT 2
R 2D-Grafik Massive Frame Drops beim Benutzen von AffineTransformOp AWT, Swing, JavaFX & SWT 2
L JavaFX Eigene Font benutzen AWT, Swing, JavaFX & SWT 6
1 Swing Progressbar benutzen um Fortschritt einer Methode anzuzeigen AWT, Swing, JavaFX & SWT 4
D SQL Statements mit Java Swing benutzen AWT, Swing, JavaFX & SWT 4
B JavaFX Spritesheet benutzen AWT, Swing, JavaFX & SWT 0
K Swing Textfeld verstecken aber benutzen AWT, Swing, JavaFX & SWT 15
Tom299 JavaFX Text oder Label benutzen AWT, Swing, JavaFX & SWT 4
W Swing JLabel jede Sekunde aktualisieren, ohne Timer zu benutzen AWT, Swing, JavaFX & SWT 4
J ComboBox als Filter benutzen AWT, Swing, JavaFX & SWT 1
TheSorm Swing JScroolBar richtig benutzen AWT, Swing, JavaFX & SWT 0
S Swing, Button benutzen zum Hintergrund wechseln AWT, Swing, JavaFX & SWT 3
B Play Button auch als Stop Button benutzen, MP3 Player AWT, Swing, JavaFX & SWT 7
K AWT Welche color benutzen? AWT, Swing, JavaFX & SWT 4
B Java auf dem Desktop benutzen AWT, Swing, JavaFX & SWT 7
S JOptionPane sinnvoll benutzen AWT, Swing, JavaFX & SWT 7
M SWT /Jface Wann einen ColumnLabelProvider benutzen? AWT, Swing, JavaFX & SWT 2
C JTree LastSelectedPathComponent benutzen? AWT, Swing, JavaFX & SWT 3
Burny91 Swing Swatches vom JColorChooser als Icon für JButton benutzen AWT, Swing, JavaFX & SWT 4
Developer_X Java - Grafikkarte benutzen AWT, Swing, JavaFX & SWT 8
T BufferedReader in GUI Benutzen AWT, Swing, JavaFX & SWT 18
T bei einem jtextfield Farben benutzen AWT, Swing, JavaFX & SWT 7
U 2 JDialogs benutzen ein windowClosed()? AWT, Swing, JavaFX & SWT 21
M AbstractAction, wann benutzen? AWT, Swing, JavaFX & SWT 2
G welches Layout sollte ich benutzen? AWT, Swing, JavaFX & SWT 2
H welche Klasse benutzen? AWT, Swing, JavaFX & SWT 4
M Gesamte Größe benutzen AWT, Swing, JavaFX & SWT 3
R Eclipse RCP: Extension point benutzen? AWT, Swing, JavaFX & SWT 3
S Benutzen einer GUI AWT, Swing, JavaFX & SWT 7
R Im JFrame ein JApplet zum öffnen einer Url benutzen AWT, Swing, JavaFX & SWT 22
B JTextArea als StatusWindow benutzen AWT, Swing, JavaFX & SWT 3
G JFace benutzen, aber wie! AWT, Swing, JavaFX & SWT 2
G JButton benutzen um ein neues JFrame zu erstellen AWT, Swing, JavaFX & SWT 3
S gleiche elemente öffters benutzen AWT, Swing, JavaFX & SWT 10
I JLabel als Button benutzen AWT, Swing, JavaFX & SWT 16
D AppletCode als JAR aus JSP benutzen und als Grafik speichern AWT, Swing, JavaFX & SWT 2
Z FileChooer auch mit SWT benutzen? AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben