Domanda

Quando sto facendo funzionare questo, JLabel non è visibile, ma quando la finestra a ridimensionare (con il mouse) JLabel viene mostrato. Perché?

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);

  }

}
È stato utile?

Soluzione

Questo sguardo come alcuni dei L & F bug nel vecchio Java VM su sistema operativo più recente. Ad esempio, su Windows 7 la maggior parte dei problemi sono risolti prima con 1.6.0_17. Si dovrebbe iniziare il programma con una console. Se vedete qualche stacktraces nel thread evento, allora è un problema di un bug di L & F.

Altri suggerimenti

IIRC, questo accade quando non si chiama Frame.pack (). Dovrebbe funzionare se si chiama 'pack ()' come l'ultima riga del costruttore.

Ho il sospetto che il problema qui può avere a che fare con il tentativo di costruire e mostrare i componenti GUI di fuori della filo swing .

Che cosa succede se si cambia main() invocare il codice GUI sul filo swing, come questo?

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

Grazie a tutti, problema risolto. A cambiare tema di Windows e tutto funzionava bene. Penso che sia Windows Aero e la mia NVIDIA GeForce FX 5500 problema. Questa card ufficiale che non funziona con Windows Aero.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top