Portal > Foren > Java > Desktop-Applikationen und Grafik > Label Text ändern mit setText (Anfänger)
Antwort
 
Themen-Optionen
Alt 05.01.2006, 20:00 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 05.01.2006
Beiträge: 3
Standard Label Text ändern mit setText (Anfänger)

Hallo,
ich rufe aus einer anderen Klasse die Blaue Methode auf, um den Text zu ändern.
Die Methode ruft er auch auf, da er die Zeile
System.out.println("Test erscheint in der Konsole");
ausführt.
Warum funktioniert label1.setText(“irgendwas“) nicht. ??

Danke,
Buttiman

Code:
  package mypackage1;
   import javax.swing.JFrame;
   import java.awt.Dimension;
   import javax.swing.JTextField;
   import java.awt.Rectangle;
   import java.awt.Label;
   import java.awt.Color;
    
   public class Frame2 extends JFrame 
   {
    
     private Label label1 = new Label();
    
     public Frame2()
     {
       try
       {
         jbInit();
       }
       catch(Exception e)
       {
         e.printStackTrace();
       }
    
     }
    
     private void jbInit() throws Exception
     {
       this.getContentPane().setLayout(null);
       this.setSize(new Dimension(491, 300));
       label1.setBounds(new Rectangle(5, 185, 470, 80));
       label1.setBackground(new Color(153, 173, 255));
       this.getContentPane().add(label1, null);
     }
    
     public void textausgabe()
      {
        
        label1.setText("irgendwas");
        label1.validate();
        label1.repaint();
        System.out.println("Test erscheint in der Konsole");
      }
    
   }
buttiman ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.01.2006, 20:18 Nach oben    #2
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 575
Standard

Versuch mal wie folgt:
Code:
     public void textausgabe()
      {
        label1.getParent().invalidate();
        label1.setText("irgendwas");
        label1.getParent().validate();
        System.out.println("Test erscheint in der Konsole");
      }
sparrow ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.01.2006, 20:47 Nach oben    #3
Neuer Benutzer
 
Registriert seit: 05.01.2006
Beiträge: 3
Standard

Leider funktioniert das auch nicht.
Füge ich die „setText“ Anweisung weiter oben ein (siehe rote Zeile),
bekomme ich den dortigen Text aber eingetragen.


Code:
package mypackage1;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.JTextField;
import java.awt.Rectangle;
import java.awt.Label;
import java.awt.Color;

public class Frame2 extends JFrame 
{

  private Label label1 = new Label();

  public Frame2()
  {
    try
    {
      jbInit();
    }
    catch(Exception e)
    {
      e.printStackTrace();
    }

  }

  private void jbInit() throws Exception
  {
    this.getContentPane().setLayout(null);
    this.setSize(new Dimension(491, 300));
    label1.setBounds(new Rectangle(5, 185, 470, 80));
    label1.setBackground(new Color(153, 173, 255));
    this.getContentPane().add(label1, null);
    label1.setText("nochmalirgendwas");
  }

  public void textausgabe()
  {
    label1.getParent().invalidate();
    label1.setText("irgendwas");
    label1.getParent().validate();
    System.out.println("Test erscheint in der Konsole");
  }

}
buttiman ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 05.01.2006, 23:20 Nach oben    #4
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 575
Standard

Ja, das liegt daran, dass du den Text änderst bevor die Oberfläche dargestellt wird.
Vielleicht hilft es das Objekt in ein Panel einzubetten, mit einem null-layout würde ich sowieso niemals arbeiten.
Das hier funktioniert einwandfrei:

PHP-Code:
import java.awt.Button;
import java.awt.Frame;
import java.awt.Label;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class 
LabelSwitch extends Frame {

    private static final 
long serialVersionUID 1L;

    
    public 
LabelSwitch() {
        
super("LabelSwitcher");
        
Panel panel = new Panel();
        final 
Label testlabel = new Label("Das steht hier als erstes");
        
panel.add(testlabel);
        
Button but = new Button("Drück mich!");
        
but.addActionListener(new ActionListener() {
            public 
void actionPerformed(ActionEvent e) {
                
changeLabel(testlabel);
            }
        });
        
panel.add(but);
        
add(panel);
    }
    
    private 
void changeLabel(Label label) {
        
label.getParent().invalidate();
        
label.setText("Und jetzt hat es sich geändert!");
        
label.getParent().validate();
        
pack();
    }
    
    public 
void showme() {
        
this.pack();
        
this.setLocationRelativeTo(null);
        
setVisible(true);
    }
    
    public static 
void main(String[] args) {
        
LabelSwitch frame = new LabelSwitch();
        
frame.showme();
    }


sparrow ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.01.2006, 21:39 Nach oben    #5
Neuer Benutzer
 
Registriert seit: 05.01.2006
Beiträge: 3
Standard

Danke für deine Hilfe,
funktioniert jetzt.
An deinem Beispiel konnte ich es Nachvollziehen.
buttiman ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 08.01.2006, 00:13 Nach oben    #6
Erfahrener Benutzer
 
Benutzerbild von karahead
 
Registriert seit: 23.11.2005
Ort: Stadtallendorf
Beiträge: 139
Standard

Anders gesagt. NULL-Layout ist Scheiße
__________________
Die Menschen wünschen sich Unsterblichkeit, aber wissen nichts anzufangen an einem verregneten Sonntag Nachmittag.
karahead ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Probleme mit RSS heohni PHP-Programmierung 21 13.10.2006 12:10
Text hinter einem Bild mittig positionieren florian HTML, XML und CSS 3 13.09.2006 21:28
Vokabeltrainer asenodin Allgemeine Java-Programmierung 9 28.05.2006 21:04
Bild im Text mit css? code5 HTML, XML und CSS 11 20.12.2005 13:15
Checkboxen auswerten julia Desktop-Applikationen und Grafik 0 05.06.2005 13:50


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:40 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44