Wie schreibe ich in den Textfield?

Status
Nicht offen für weitere Antworten.

Nightlord

Mitglied
Habe folgendes Problem:
Ich muss eine sich ändernde Zahl in ein Textfield schreiben.
Das problem ist dass ich keine NON-STATIC variablen in STATIC Textfield schreiken kann.

Wie Kann ich es den jetzt machen??


Code:
import java.awt.Font;

import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class Boxes { 
	public static void addInternalToDesktop( JDesktopPane desktop ) { 

		JInternalFrame iframe; 
		iframe = new JInternalFrame( "Wert 1", // title 
				true, // resizable 
				true, // closeable 
				true, // maximizable 
				true ); // iconifiable 
		iframe.setSize(1600, 1140/3);
		iframe.setLocation(0, 1140/3);
		iframe.add( new JScrollPane(new JTextArea()) ); 
		iframe.setVisible( true ); 
		
		JTextField iIText;
		iIText = new JTextField("Wert 1:" + Wert1);
		iIText.setFont( new Font("Serif", Font.BOLD, 20) );
		iIText.setLocation(0, 0);
		iIText.setSize(100, 100);
		
		iframe.add(iIText);
		desktop.add( iframe ); 	
		} 
	
	
	public static void addInternalToDesktop1( JDesktopPane desktop ) { 
		JInternalFrame iframe; 
		iframe = new JInternalFrame( "Wert 2", // title 
				true, // resizable 
				true, // closeable 
				true, // maximizable 
				true ); // iconifiable 
		iframe.setSize(1600, 1140/3);
		iframe.setLocation(0, (2*1140)/3);
		iframe.add( new JScrollPane(new JTextArea()) ); 
		iframe.setVisible( true ); 
		
		JTextField iIText;
		iIText = new JTextField("Wert 2:" + Wert2);
		iIText.setFont( new Font("Serif", Font.BOLD, 20) );
		
		iframe.add(iIText);
		desktop.add( iframe );  	
		} 	
	
	
	 public static void addInternalToDesktop2( JDesktopPane desktop ) { 
		JInternalFrame iframe; 
		iframe = new JInternalFrame( "Wert 0", // title 
				true, // resizable 
				true, // closeable 
				true, // maximizable 
				true ); // iconifiable 
		iframe.setSize(1600, 1140/3);
		iframe.setLocation(0, 0);
		iframe.add( new JScrollPane(new JTextArea()) ); 
		iframe.setVisible( true ); 
		
		JTextField iIText;
		iIText = new JTextField("Wert 0:" + Wert0);
		iIText.setFont( new Font("Serif", Font.BOLD, 20) );
		iframe.add(iIText);
		desktop.add( iframe );  	
		} 	
		
	public static void main( String[] args ) { 
		JFrame f = new JFrame("Informations"); 
		f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
		JDesktopPane desktop = new JDesktopPane(); 
		f.add( desktop ); 
		f.setSize( 1600, 1140 ); 
		addInternalToDesktop( desktop ); 
		addInternalToDesktop1( desktop ); 
		addInternalToDesktop2( desktop );	
		f.setVisible( true );
	}
}

Wert0,1 und 2 sind strings und bekomme sie spläter im main.




Hab echt keine ahnung wie ich dass machen soll, wieleicht weiss einer von euch wie dies zu machen ist.
 
schreib das alles in eine eigene klasse.

Erstelle in der Main Methode eine Instanz der Klasse und dann kannst du dir den Mist mit dem static sparen.

Code:
public static void main(String[] args){
 JDesktopPane desktop = new JDesktopPane(); 
 desktop.add(new Boxes("Wert 1"));
 desktop.add(new Boxes("Wert 2"));
 desktop.add(new Boxes("Wert 3"));
}

Code:
public Boxes(String wert){
      JInternalFrame iframe;
      iframe = new JInternalFrame(wert, // title
            true, // resizable
            true, // closeable
            true, // maximizable
            true ); // iconifiable
      iframe.setSize(1600, 1140/3);
      iframe.setLocation(0, 1140/3);
      iframe.add( new JScrollPane(new JTextArea()) );
      iframe.setVisible( true );
      
      JTextField iIText;
      iIText = new JTextField("wert": " + wert);
      iIText.setFont( new Font("Serif", Font.BOLD, 20) );
      iIText.setLocation(0, 0);
      iIText.setSize(100, 100);
      
      iframe.add(iIText);
}

oder besser noch erbst du von JInternalFrame:
Code:
public Boxes(String wert) extends JInternalFrame{
      super(wert, // title
            true, // resizable
            true, // closeable
            true, // maximizable
            true ); // iconifiable
      setSize(1600, 1140/3);
      setLocation(0, 1140/3);
      add( new JScrollPane(new JTextArea()) );
      setVisible( true );
      
      JTextField iIText;
      iIText = new JTextField("wert": " + wert);
      iIText.setFont( new Font("Serif", Font.BOLD, 20) );
      iIText.setLocation(0, 0);
      iIText.setSize(100, 100);
      
      add(iIText);
}

Gruß,
Esco
 
Ok, ich muss leider zugeben ich habe garnix verstanden wass du da gesagt hast, sorry, könntest du es mir vieleicht schritt für schritt erklären, da ich mit programation eigentlich nix am hut habe.


P.S. Danke für die rasche Antwort.
 
Hi, meiner Meinung nach am einfachsten geht es wenn du eine 2te Klasse erstellst und der per Konstruktor die GUI Klasse übergibst, ich hatte das Problem auch gerade und ich schicke dir einfach mal nen paar Zeilen aus meinem Code damit ist es denke ich am besten verständlich


Code:
public class SetTheTextFields  {
    
    shutGUI belongsTo; // hier wird in dem Objekt SetTheTextFields ein verweiß auf die Klasse mit dem TextFeld gezogen
                                 // bei mir hieß sie shutGUI kann bei dir natürlich anders heißen
    
    public SetTheTextFields(shutGUI belongsTo){ // ist der Konstruktor 
            this.belongsTo = belongsTo;



    }
    
   
    public void setTheTextFields() {
       belongsTo.setjTextField(String WasAuchImmerDuUebergebenWillst);
    }
}


Und in deiner Klasse mit dem TextField musst du dann eine Methode erstellen die dann deine TextFields füllt. z.B.


Code:
    public void setjTextField(String WasAuchImmerDuUebergebenHast){
        
    jTextField.setText(WasAuchImmerDuUebergebenHast);

Jetzt kannst du durch die Methode immer wieder das TextFeld updaten.Falls dir das nicht geholfen hat guckst du nochmal hier http://www.java-forum.org/de/viewtopic.php?t=7895
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben