Hallo liebe Forengemeinde,
folgender JDialog liegt vor:
Gebe ich in allen drei Textfeldern etwas falsches ein, wird mir nur der erste angezeigt. Bei anderen Abfragen werden mehrere angezeigt. Aber sobald das erste Textfeld dabei ist (das fehlerText[0], wird mir nur dieses Array-Feld angezeigt.
Was mache ich falsch?
folgender JDialog liegt vor:
Java:
boolean a = true;
boolean b = true;
boolean c = true;
String fehlerText[] = new String[33];
String derText = "";
if (!textfeld1.getText().matches("[A-Za-z0-9ÄäÖöÜÜüß\\.,:°§$%\"<>!&\\(\\)?\\/´`+\\*\\-=_']*"))
{
fehlerText[0] = "<html><p>- Seite 1 Feld \"Textfeld1\"</html>";
a = false;
}
if (!textfeld2.getText().matches("[A-Za-z0-9ÄäÖöÜÜüß\\.,:°§$%\"<>!&\\(\\)?\\/´`+\\*\\-=_']*"))
{
fehlerText[1] = "<html><p>- Seite 1 Feld \"Textfeld2\"</html>";
b = false;
}
if (!textfeld1.getText().matches("[A-Za-z0-9ÄäÖöÜÜüß\\.,:°§$%\"<>!&\\(\\)?\\/´`+\\*\\-=_']*"))
{
fehlerText[2] = "<html><p>- Seite 1 Feld \"Textfeld3\"</html>";
c = false;
}
... // weitere Prüfungen
for(int ii = 0; ii < fehlerText.length; ii++)
{
StringBuilder sb = new StringBuilder(); /** sb stellt ein Objekt der Klasse StringBuilder dar **/
for(String st : fehlerText)
{
if((st != null) && (st.length() > 0))
{
sb.append(st);
}
derText = sb.toString(); /** derText speichert den Inhalt des Objektes als String **/
}
}
if(a == true && b == true && c == true )
{
text_prüf = true; // wird wo anders noch verwendet
}
else
{
text_prüf = false; // wird woanders noch verwendet
final JDialog diag = new JDialog();
JButton ok = new JButton("OK");
JButton dru = new JButton("Drucken");
JPanel hilfspanel = new JPanel(new FlowLayout());
JLabel infotext = new JLabel("<html>Mein Text:<p>" + derText + "<p>Weiterer Text.</html>");
ok.setPreferredSize(new Dimension(100, 100));
dru.setPreferredSize(new Dimension(100, 100));
hilfspanel.add(ok);
hilfspanel.add(dru);
diag.setLayout(new GridLayout(2,0,10,10));
diag.setSize(400, 1000);
diag.setLocation(300, 300);
diag.setVisible(true);
diag.add(infotext);
diag.add(hilfspanel);
ok.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
diag.dispose();
}
});
dru.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
pj = PrinterJob.getPrinterJob();
try
{
if (pj.printDialog())
{
paper = new Paper();
paper.setSize(594.936, 841.536); // Set to A4 size.
paper.setImageableArea(30, 0, 530, 780);//set margins
pageFormat = new PageFormat();
pageFormat.setPaper(paper);
size = diag.getSize();
diag.setSize(size);
formular = new Formular_Dialog(diag);
pj.setPrintable(formular, pageFormat);
pj.print();
}
}
catch (PrinterException ex)
{
ex.printStackTrace();
}
}
});
}
Gebe ich in allen drei Textfeldern etwas falsches ein, wird mir nur der erste angezeigt. Bei anderen Abfragen werden mehrere angezeigt. Aber sobald das erste Textfeld dabei ist (das fehlerText[0], wird mir nur dieses Array-Feld angezeigt.
Was mache ich falsch?