Frage

Wenn ich dies ausgeführt wird, ist JLabel nicht sichtbar, aber wenn ich die Fenstergröße ändern (mit der Maus) JLabel zeigt ist. Warum?

import javax.swing.*;
import java.awt.*;

public class FrmTaoLogin extends JFrame {

  private JPanel pnlLeft = new JPanel();

  public FrmTaoLogin() {

    super();

    pnlLeft.setBorder(BorderFactory.createEtchedBorder());
    pnlLeft.add(new JLabel("test1"));
    getContentPane().add(pnlLeft,BorderLayout.SOUTH);

    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setSize(200, 200); 

  }

  public static void main(String[] args) {

    FrmTaoLogin FrmLogin = new FrmTaoLogin();
    FrmLogin.setVisible(true);

  }

}
War es hilfreich?

Lösung

Dieser Blick, wie einige der L & F Fehler in älteren Java VMs auf neueren OS. Zum Beispiel unter Windows 7 die meisten Probleme werden zuerst mit 1.6.0_17 behoben. Sie sollten Ihr Programm mit einer Konsole starten. Wenn Sie einige stacktraces im Fall Thread sehen, dann ist es ein Problem eines L & F Fehler.

Andere Tipps

IIRC, geschieht dies, wenn Sie rufen Sie nicht Frame.pack (). Es sollte funktionieren, wenn Sie ‚pack ()‘ in der letzten Zeile des Konstruktor aufrufen.

Ich vermute, dass das Problem hier kann mit dem Versuch, zu bauen zu tun hat, und zeigen Sie Ihre GUI Komponenten außerhalb der Swing-Thread .

Was ist, wenn Sie main() ändern, um Ihre GUI-Code auf dem Swing-Thread aufrufen, wie das?

public static void main(String[] args) {
    SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            FrmTaoLogin FrmLogin = new FrmTaoLogin();
            FrmLogin.setVisible(true);
        }
    });
}

Danke an alle, Problem gelöst. Ich Windows-Design verändern und alles funktioniert gut. Ich denke, das ist Windows Aero und mein NVIDIA GeForce FX 5500 Problem. Diese Karte offiziell nicht mit Windows Aero arbeiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top