簡體   English   中英

JAVA:在鼠標懸停之前,GUI不會顯示?

[英]JAVA: GUI not showing until mouse hovers over?

我正在嘗試Java中的不同外觀,並且添加了系統外觀,但是直到將鼠標懸停在它們上時,GUI組件才可見。 這是我改變外觀的代碼:

try{
    Base base = new Base();
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(Exception e){
    e.printStackTrace(System.out);
}

這是GUI組件的代碼:

private void HomeScreen(){
    frame.getContentPane().removeAll();

    JButton btnNewNote = new JButton("");
    btnNewNote.setForeground(Color.WHITE);
    btnNewNote.setIcon(new ImageIcon("res/images/NewNote.png"));
    btnNewNote.setBounds(385, 29, 34, 34);
    btnNewNote.setVisible(true);
    frame.getContentPane().add(btnNewNote);
}

一切正常,除了我必須將gui元素懸停在它們上以使其可見。 誰能給我一個原因

從容器中刪除並重新添加組件時,必須在進行更改后調用revalidate() ,然后在容器上repaint()

其他事宜:

  • 您似乎使用的是null布局,如果這樣,則不要使用。 盡管null布局和setBounds()似乎是Swing新手喜歡創建復雜GUI的最簡單和最佳方法,但您創建的Swing GUI越多,使用它們時將遇到的困難就越大。 當GUI調整大小時,它們不會重新調整組件的大小;它們是需要增強或維護的皇家女巫;放置在滾動窗格中時,它們會完全失敗;在所有平台或與原始分辨率不同的屏幕分辨率下查看時,它們看起來都令人作嘔。
  • “交換”視圖的最簡單方法是通過CardLayout -請檢查一下。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM