Ich habe ein Label, welches durch drücken auf einen Button mit der Methode setText("text"); verändert wird.
Lieder bekomme ich den geänderten Text nur teilweise angezeigt. Erst nach klicken auf den Rand des Fensters wird alles komplett angezeigt.
Da bei einem vereinfachten Beispiel alles problemlos funktionierte, habe ich mich dazu entschieden den kompletten Code hier zu posten.
Lieder bekomme ich den geänderten Text nur teilweise angezeigt. Erst nach klicken auf den Rand des Fensters wird alles komplett angezeigt.
Da bei einem vereinfachten Beispiel alles problemlos funktionierte, habe ich mich dazu entschieden den kompletten Code hier zu posten.
Code:
import java.awt.*;
import java.awt.event.*;
public class Abfragen
extends Frame
implements ActionListener
{
private Label name, antwort, antwort2;
private TextField ausl, deutsch;
private Button prüfen;
private Voks v;
private boolean ende;
private int richtige;
public Abfragen()
{
super("Lektion abfragen");
addWindowListener(new WindowClosingAdapter(true));
setBackground(Color.pink);
GridBagLayout gbl = new GridBagLayout();
setLayout(gbl);
Settings sett = new Settings();
v = new Voks(sett.getAktNr(),false);
name = new Label();
name.setText("Lektion "+sett.getAktNr());
name.setFont(new Font("SansSerif",Font.BOLD,18));
GridBagConstraints gbcN = setGBC(0,0,2,1);
gbcN.insets = new Insets(10,10,10,10);
gbl.setConstraints(name,gbcN);
add(name);
setFont(new Font("SansSerif",Font.BOLD,14));
ausl = new TextField(20);
ausl.addActionListener(this);
ausl.setText("");
GridBagConstraints gbcAu = setGBC(1,1,1,1);
gbcAu.insets = new Insets(0,5,0,10);
gbcAu.anchor = GridBagConstraints.EAST;
gbl.setConstraints(ausl,gbcAu);
add(ausl);
deutsch = new TextField(20);
deutsch.setText(v.vokArray[v.getElem()].getDeu());
deutsch.setEditable(false);
GridBagConstraints gbcD = setGBC(0,1,1,1);
gbcD.insets = new Insets(0,10,0,5);
gbcD.anchor = GridBagConstraints.EAST;
gbl.setConstraints(deutsch,gbcD);
add(deutsch);
prüfen = new Button("Prüfen");
prüfen.addActionListener(this);
GridBagConstraints gbcP = setGBC(1,2,1,1);
gbcP.insets = new Insets(0,0,0,10);
gbcP.anchor = GridBagConstraints.EAST;
gbl.setConstraints(prüfen,gbcP);
add(prüfen);
antwort = new Label(); // <--- Dieses Label macht ärger.
antwort.setText("");
antwort.setAlignment(Label.CENTER);
GridBagConstraints gbcA = setGBC(0,3,2,1);
gbcA.insets = new Insets(0,10,0,10);
gbl.setConstraints(antwort,gbcA);
add(antwort);
antwort2 = new Label(); // <-- Dieses ebenfalls.
antwort2.setText("");
antwort2.setAlignment(Label.CENTER);
GridBagConstraints gbcA2 = setGBC(0,4,2,1);
gbcA2.insets = new Insets(0,10,10,10);
gbl.setConstraints(antwort2,gbcA2);
add(antwort2);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource().equals(prüfen))
prüfe();
if(ae.getSource().equals(ausl))
prüfe();
}
private void prüfe()
{
String aus = ausl.getText();
if(isRichtig(v.vokArray[v.getElem()],aus)){
antwort2.setText(""); // <---
antwort.setText("Das ist richtig !"); // <--- Hier wird der Text im Label verändert.
richtige++;
}
else{
antwort.setText("Das war falsch!"); //<---
antwort2.setText("\""+v.vokArray[v.getElem()].getAus()+ //<--- Hier ebenfalls.
"\" ist richtig."); //<---
}
ausl.setText("");
v.upElem();
if(v.isEnde()){
Ok ok;
ok = new Ok(this,"Fertig",
"Du hast "+richtige+" / "+(v.vokArray.length)+" richtig !",
false);
setVisible(false);
dispose();
return;
}
deutsch.setText(v.vokArray[v.getElem()].getDeu());
}
private boolean isRichtig(Vokabel vok, String aus)
{
if(vok.getAus().equals(aus))
return true;
return false;
}
}