Hallo,
an anderer Stelle hier im Forum habe ich versucht, mein Problem mit der Verlaufsanzeige zu lösen. Nachdem sich herausstellte, dass dies nur mit sehr hohem Aufwand möglich ist, verzichtete ich auf die Verlaufsanzeige und beschränkte mich auf einen reinen Warten-Dialog. Damit kann ich jetzt für mein Stradoku-Programm während der Warten-Dialog angezeigt wird, die Eindeutigkeitsprüfung durchführen, um anschließend zur jeweils auslösenden Methode zurück zu kehren.
Wie gesagt, das alles funktioniert. Unverständlicherweise wird jedoch im Warten-Dialog kein Text angezeigt.
Hier der Code für die Klasse 'HinweisWarten", welche für den Warten-Dialog zuständig ist:
Ein Teil dieses Codes wurde vom GUI-Generator von NetBeans erzeugt. Der vorgegebene Text für 'labelText' wird von der Methode 'checkEindeutigkeit()' überschrieben, die so aussieht:
Kann mir bitte jemand sagen, wie ich es erreiche, dass im Dialog auch der Text angezeigt wird?
an anderer Stelle hier im Forum habe ich versucht, mein Problem mit der Verlaufsanzeige zu lösen. Nachdem sich herausstellte, dass dies nur mit sehr hohem Aufwand möglich ist, verzichtete ich auf die Verlaufsanzeige und beschränkte mich auf einen reinen Warten-Dialog. Damit kann ich jetzt für mein Stradoku-Programm während der Warten-Dialog angezeigt wird, die Eindeutigkeitsprüfung durchführen, um anschließend zur jeweils auslösenden Methode zurück zu kehren.
Wie gesagt, das alles funktioniert. Unverständlicherweise wird jedoch im Warten-Dialog kein Text angezeigt.
Hier der Code für die Klasse 'HinweisWarten", welche für den Warten-Dialog zuständig ist:
Java:
import javax.swing.JDialog;
/**
* Einfacher Warten-Dialog
*/
public class HinweisWarten extends JDialog {
private static final long serialVersionUID = 1L;
public javax.swing.JLabel labelText;
/**
* Konstruktor
* @param parent Superklasse
*/
public HinweisWarten(java.awt.Frame parent) {
super(parent, true);
initComponents();
setModal(false);
setLocationRelativeTo(parent);
}
/**
* Setzt den anzuzeigenden text.
* @param txt
*/
public void zeigeHinweis(String txt){
labelText.setText(txt);
}
private void initComponents() {
labelText = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("Hinweis");
setModalExclusionType(null);
setName("dialogWarten");
setResizable(false);
labelText.setFont(new java.awt.Font("Tahoma", 1, 12));
labelText.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
labelText.setText("<html><center><b>Erzeuge Stradoku-Aufgaben.<br><br>Bitte solange warten.</b></center></html>");
labelText.setMaximumSize(new java.awt.Dimension(116, 45));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap(18, Short.MAX_VALUE)
.addComponent(labelText, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(19, 19, 19))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addComponent(labelText, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(19, Short.MAX_VALUE))
);
pack();
}
}
Java:
/**
* Führt die Eindeutigkeitsprüfung für ein Stradoku aus.
* @return true wenn eindeutig, sonst false
*/
public Boolean checkEindeutigkeit(){
hnw = new HinweisWarten(strApp);
hnw.labelText.setText("<html><center><b>Eindeutigkeit wird überprüft."
+ "<br><br>Bitte solange warten.</b></center></html>");
hnw.setVisible(true);
int afg[] = new int[81];
int lsg[] = new int[81];
kopieren(aufgabe, afg, false);
for (int i = 0; i < 81; i++) {
int lw = loesung[i] & ~LWF;
if (loesung[i] <= LWRT && loesung[i] > 9) {
for (int k = 1; k <= 9; k++) {
if (lw != k) {
afg[i] = k;
strLoeser = new LevelLoeser(null, afg, lsg, false);
int lev = strLoeser.loeseAufgabe();
if (lev > 0) {
hnw.setVisible(false);
return false;
} else {
kopieren(aufgabe, afg, false);
}
}
}
}
}
hnw.setVisible(false);
return true;
}
Kann mir bitte jemand sagen, wie ich es erreiche, dass im Dialog auch der Text angezeigt wird?