私は次のことをしようとします:
- にコンポーネントを追加JFrameするBorderLayout
- 別のコンポーネントをJFrame
を使用しているため、新しいコンポーネントが古いコンポーネントを「上書き」することを期待しますBorderLayout。を呼び出す前に古いコンポーネントを上書きすると、これは機能しますpack()。を呼び出した後に2 番目のコンポーネントを追加すると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();たが、それは役に立ちません。ここで何がうまくいかないのですか?