Hallo,
ein komisches Problem: Ich habe eine GUI mit Swing geschrieben. Wird diese gestartet, werden nur die Komponenten unter dem Mauszeiger gezeichnet. Die anderen nur dann, wenn ich mit dem Mauszeiger darüber fahre oder eine Aktion auslöse.
Ich habe es mit revalidate und repaint probiert (s.u.), dies hat aber keine Besserung gebracht.
Woran kann es liegen?
Hier der vollständige (mit Netbeans erzeugte) Code der GUI:
Danke!
ein komisches Problem: Ich habe eine GUI mit Swing geschrieben. Wird diese gestartet, werden nur die Komponenten unter dem Mauszeiger gezeichnet. Die anderen nur dann, wenn ich mit dem Mauszeiger darüber fahre oder eine Aktion auslöse.
Ich habe es mit revalidate und repaint probiert (s.u.), dies hat aber keine Besserung gebracht.
Woran kann es liegen?
Hier der vollständige (mit Netbeans erzeugte) Code der GUI:
Java:
public final class GUI_Importer_Start extends javax.swing.JFrame {
private static GUI_Importer_Start INSTANCE;
private final DB_Anfragen db;
/**
* Creates new form GUI_Importer_Start
*/
private GUI_Importer_Start(DB_Anfragen db) {
this.db = db;
initComponents();
initFrame();
revalidate();
repaint();
}
public static GUI_Importer_Start getInstance(DB_Anfragen db) {
if (INSTANCE == null) {
Hilfsfunktionen.myDebug("INSTANCE IST NULL");
INSTANCE = new GUI_Importer_Start(db);
}
INSTANCE.setVisible(true);
return INSTANCE;
}
/**
* This method is called from within the constructor to initialize the form. WARNING: Do NOT modify this code. The content of this method is always regenerated by the Form
* Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
starter_beenden = new javax.swing.JButton();
weiter = new javax.swing.JButton();
jScrollPane2 = new javax.swing.JScrollPane();
jTextArea1 = new javax.swing.JTextArea();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
setTitle("vPlaner 3 - Stundenplan Importer");
setMinimumSize(new java.awt.Dimension(524, 330));
setResizable(false);
addComponentListener(new java.awt.event.ComponentAdapter() {
public void componentShown(java.awt.event.ComponentEvent evt) {
formComponentShown(evt);
}
});
jLabel1.setFont(new java.awt.Font("Noto Sans", 1, 36)); // NOI18N
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/vPlaner_Aufsichtsplanung.png"))); // NOI18N
jLabel1.setText("vPlaner 3 - Stundenplan Importer");
jLabel1.setFocusable(false);
jLabel1.setMaximumSize(new java.awt.Dimension(524, 305));
jLabel1.setMinimumSize(new java.awt.Dimension(524, 305));
starter_beenden.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/application-exit.png"))); // NOI18N
starter_beenden.setText("beenden");
starter_beenden.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
starter_beendenActionPerformed(evt);
}
});
weiter.setIcon(new javax.swing.ImageIcon(getClass().getResource("/resources/go-next-view.png"))); // NOI18N
weiter.setText("weiter");
weiter.setHorizontalTextPosition(javax.swing.SwingConstants.LEFT);
weiter.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
weiterActionPerformed(evt);
}
});
jScrollPane2.setBorder(null);
jScrollPane2.setHorizontalScrollBarPolicy(javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
jScrollPane2.setOpaque(false);
jTextArea1.setEditable(false);
jTextArea1.setColumns(20);
jTextArea1.setLineWrap(true);
jTextArea1.setRows(8);
jTextArea1.setText("Mit diesem Modul können Sie Stundenpläne aus den Stundenplanprogrammen Untis, daVinci oder dem TurboPlaner in den vPlaner importieren. Im vPlaner können Sie dann konfigurieren (Menü: \"Datenbestand bearbeiten\" -> \"Konfiguration\"), ob beim Planen gewarnt oder das Setzen gesperrt werden soll, wenn eine Lehrkraft dort Unterricht hat.");
jTextArea1.setWrapStyleWord(true);
jTextArea1.setBorder(null);
jTextArea1.setOpaque(false);
jScrollPane2.setViewportView(jTextArea1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(starter_beenden)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(weiter))
.addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 709, Short.MAX_VALUE))
.addContainerGap())
.addComponent(jLabel1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(24, 24, 24)
.addComponent(jScrollPane2)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(starter_beenden)
.addComponent(weiter))
.addContainerGap())
);
pack();
}// </editor-fold>
private void formComponentShown(java.awt.event.ComponentEvent evt) {
revalidate();
repaint();
}
private void starter_beendenActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
}
private void weiterActionPerformed(java.awt.event.ActionEvent evt) {
if (weiter.isEnabled()) {
GUI_1_Chooser.getInstance(db);
this.dispose();
}
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JButton starter_beenden;
private javax.swing.JButton weiter;
// End of variables declaration
private void initFrame() {
this.setIconImage(PConfigImporter.getTaskbarIcon());
Hilfsfunktionen.centerFrame(this);
}
}
Danke!