我在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元素上以使它们变得可见之外,一切正常。谁能给我一个理由
答案 0 :(得分:3)
从容器中删除和重新添加组件时,您必须在进行更改后调用容器上的revalidate()
然后repaint()
。
其他问题:
setBounds()
似乎是Swing新手,比如创建复杂GUI的最简单和最好的方法,但是你创建的Swing GUI越多,在使用它们时会遇到更严重的困难。当GUI调整大小时,它们不会调整组件的大小,它们是增强或维护的皇室女巫,当它们被放置在滚动窗格中时它们完全失败,当它们在所有平台上观看时或者与原始平台不同的屏幕分辨率时它们看起来很糟糕