繁体   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