gpt4 book ai didi

Java Swing,有一个 JComponent 和一个 JPanel

转载 作者:行者123 更新时间:2023-12-02 04:49:01 26 4
gpt4 key购买 nike

我正在尝试将 JComponent 添加到 JPanel,然后将其显示在窗口中。我很确定我做对了,但只有面板中的按钮显示。

//Component class
JFrame window=new JFrame("This is a window");
RcComponent component=new RcComponent();
JButton button= new Button("This is a button");
JPanel panel=new JPanel();

panel.add(component);
panel.add(button);
window.add(panel);

window.setVisible(true);

只有按钮显示在创建的窗口中。我不太确定我做错了什么。

最佳答案

默认情况下,JPanel 使用 FlowLayout,并且 FlowLayout 遵循添加到其中的所有组件的首选大小。

如果 RcComponent 是自定义组件,则需要重写 getPreferredSize() 方法以返回组件的 Dimension。

@Override
public Dimension getPreferredSize()
{
return new Dimension(...);
}

如果您不重写此方法,则首选大小为 0,因此没有任何内容可显示:

关于Java Swing,有一个 JComponent 和一个 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29422051/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com