Applets mit Swing
Als Alternative zur Verwendung von AWT-Oberflächen können Applets auch Swing-Steuerelemente enthalten. Hierfür benötigen
wir natürlich eine Swing-Oberfläche als Basis. Um Swing-Komponenten benutzen zu können, müssen wir deshalb die Basisklasse von
java.applet.Applet in javax.swing.JApplet ändern. Dadurch stehen uns nun alle Komponenten und
Steuerelemente von Swing zur Verfügung.
Auch für Swing-Oberflächen bietet NetBeans ein Tool (auch GUI-Builder genannt) zum Designen der grafischen Oberfläche. Beim
Erstellen der Datei wählen wir JApplet Form aus der Kategorie Swing GUI Forms.
Das untere Beispiel zeigt ein Formular mit einigen Formular-Steuerelementen wie z. B. JLabel, JTextField,
JTextArea, JRadioButton, JCheckBox, JComboBox und JButton.
Beim Klick auf den Button wird ein Meldungsfenster angezeigt. Nach Bestätigung der Meldung wird das Formular zurückgesetzt.
package de.hwh.bsp.swingapp;
import javax.swing.JOptionPane;
public class MeinApplet extends javax.swing.JApplet
{
@Override
public void init()
{
/* Set the Nimbus look and feel */
// [...]
/* Create and display the applet */
try
{
java.awt.EventQueue.invokeAndWait(new Runnable()
{
@Override
public void run()
{
initComponents();
}
});
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
@SuppressWarnings("unchecked")
private void initComponents()
{
// [...]
}
private void btnAbschickenMouseClicked(java.awt.event.MouseEvent evt)
{
if (JOptionPane.showConfirmDialog(null, "Sind Ihre Eingaben korrekt?", "Eingabe prüfen!", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION)
{
rdbgAnrede.setSelected(rdbHerr.getModel(), true);
txtName.setText("");
txtEMail.setText("");
cmbSprache.setSelectedIndex(0);
taNachricht.setText("");
cbNews.setSelected(false);
}
}
// Variables declaration - do not modify
private javax.swing.JButton btnAbschicken;
private javax.swing.JCheckBox cbNews;
private javax.swing.JComboBox<String> cmbSprache;
private javax.swing.JPanel formPanel;
private javax.swing.JLabel lblAnrede;
private javax.swing.JLabel lblEMail;
private javax.swing.JLabel lblNachricht;
private javax.swing.JLabel lblName;
private javax.swing.JLabel lblNews;
private javax.swing.JLabel lblSprache;
private javax.swing.JRadioButton rdbFrau;
private javax.swing.JRadioButton rdbHerr;
private javax.swing.ButtonGroup rdbgAnrede;
private javax.swing.JScrollPane spNachricht;
private javax.swing.JTextArea taNachricht;
private javax.swing.JTextField txtEMail;
private javax.swing.JTextField txtName;
// End of variables declaration
}
Übrigens: Natürlich stehen in der Klasse JApplet weiterhin die Schnittstellenfunktionen init(),
start(), stop() und destroy() sowie die Funktion getParameter() zur Verfügung.
Grund dafür ist, dass JApplet eine von Applet abgeleitete Klasse ist.