gpt4 book ai didi

java - 如何在JComponent中绘制JComponent?

转载 作者:行者123 更新时间:2023-12-03 11:49:43 24 4
gpt4 key购买 nike

我对 JComponent 有一个奇怪的问题。我正在尝试创建自己的 JComponent,因此我需要将 JComponent 组合在一起。

我想在我的 JComponent JDial 中绘制 JButton:

public class JDial extends JComponent {
private static final long serialVersionUID = 3364481508702147328L;

public JDial() {
JButton b = new JButton("test");
this.add(b);
}
}

但是那什么也没有画。更有趣的是,这个效果很好:

public class JDial extends JPanel {
private static final long serialVersionUID = 3364481508702147328L;

public JDial() {
JButton b = new JButton("test");
this.add(b);
}
}

JPanel继承自JComponent,在内部绘制JButton。 JPanel 是如何做到这一点的?

提前致谢

最佳答案

通常,当您想通过覆盖 paintComponent() 方法进行自定义绘画时,您会扩展 JComponent。

如果您只想添加一堆组件,那么您应该使用 JPanel。

两者之间的区别在于,默认情况下 JPanel 使用 FlowLayout,因此它知道如何布局添加到它的任何组件。要使 JComponent 像 JPanel 一样,您需要设置布局管理器并添加自定义绘画来绘制背景。

关于java - 如何在JComponent中绘制JComponent?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15591872/

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