Textfeld wird bei Visible-Wechsel nicht angezeigt/gezeichnet

gerritka

Mitglied
Hallo,

habe ein Textfeld, was erst angezeigt werden soll wenn auch ein Bild in einen Tab eingefügt wird. Also bei der Erstellung steht er auf setVisible(false). Wenn ich nun das Bild einfüge wird auch automatisch im Quelltext das Textfeld auf true gesetzt, nur gezeichnet wird es nicht:

Textfeld Erstellung:
Code:
   public JTextField getJTextField() {
   		if (jTextField == null) {
   			jTextField = new JTextField();
 			jTextField.setPreferredSize(new java.awt.Dimension(120,20));
   			jTextField.setText("Hier Fehler Text eingeben");
   			jTextField.setActionCommand("backdropError");
   			jTextField.setVisible(false);
   		}
   		return jTextField;
   	}

Bild-Einfüge Methode
Code:
   public void setBackdrop() {
   		int pos = view.getJTabbedPane().getSelectedIndex();
   		EditorSceneModel scene = (EditorSceneModel)view.getMovieVector().get(pos);
   		
   		// Wenn ein Bild vorhanden ist mache nix
   		if(scene.backdrop.image.image != null)
 			System.out.println("Funktion noch nicht implementiert");
   		
   		// ansonsten öffne File-Dialog und lade Bild
   		else {
   			view.getJFileChooser().showOpenDialog(null);
   			File file = view.getJFileChooser().getSelectedFile();
   			scene.backdrop.image.setImage(file);
 		 ((JLayeredPane)(view.getMovieVector().get(pos))).add(scene.backdrop.image, new Rectangle(0, 0, 200, 200));
   			view.getJTextField().setVisible(true);
 			view.getJTextField().setText(scene.backdrop.errorMessage);
   		}
   	}

Funktionieren tuts nur bei der StateChanged Methode der Tabs, also wenn ein Tab ein Bild enthält wird das Textfeld auch angezeigt sont nicht:

Code:
   // Wenn ein Bild enthalten ist setze Textfeld auf Visible(true)
   if((scene.backdrop.image.image) != null) {
   			view.getJTextField().setVisible(true);
 			scene.backdrop.errorMessage = view.getJTextField().getText();
   		}
   		else
   			view.getJTextField().setVisible(false);
 
Sorry, hab zu früh gepostet ;)

Hab jetzt erst alle Seiten zu Ende durchgelesen die ich zu dem Thema gefunden hab.

Und wenn man mit setVisible was ändert und aber erstmal sonst nix macht muss man erst den Container aktualiesieren mit Container.validate();
 
Zurück