【发布时间】:2013-09-10 23:40:38
【问题描述】:
我尝试做以下事情:
- 使用
BorderLayout将组件添加到JFrame - 将另一个组件添加到
JFrame
我希望新组件能够“覆盖”旧组件,因为我使用的是BorderLayout。如果我在调用 pack() 之前覆盖旧组件,这将有效。现在,如果我在调用pack() 添加第二个组件之后,这两个组件仍然可见。示例:
public class Test extends JFrame{
public Test(){
setLayout(new BorderLayout());
add(new JLabel("Quite a long text"));
setVisible(true);
pack();
add(new JLabel("Another text"));
}
}
结果:
public class Test extends JFrame{
public Test(){
setLayout(new BorderLayout());
add(new JLabel("Quite a long text"));
setVisible(true);
add(new JLabel("Another text"));
pack();
}
}
结果:
我尝试添加validate(); 和repaint();,但这无济于事。这里出了什么问题?
【问题讨论】:
-
你可以试试
getComponents()[0] = new JLabel("Another Text");
标签: java swing jframe layout-manager border-layout