Java 将使用JPanel扩展的类转换为JPanel

Java 将使用JPanel扩展的类转换为JPanel,java,swing,class,jpanel,type-conversion,Java,Swing,Class,Jpanel,Type Conversion,我要做的是 我有一个名为“TestPanel”的类,它是从JPanel扩展而来的。并希望通过一种方法将其拖动。但方法返回JPanel类型,并在编译时显示此错误 cannot convert from JPanel to testpanel 方法不能用于返回“TestPanel”类型,因为我希望生成更多类似TestPanel的类。下面是返回JPanel的RegisterAsDraggable方法 public static JPanel RegisterAsDraggable(){

我要做的是

我有一个名为“TestPanel”的类,它是从JPanel扩展而来的。并希望通过一种方法将其拖动。但方法返回JPanel类型,并在编译时显示此错误

cannot convert from JPanel to testpanel
方法不能用于返回“TestPanel”类型,因为我希望生成更多类似TestPanel的类。下面是返回JPanel的
RegisterAsDraggable
方法

    public static JPanel RegisterAsDraggable(){
        final JPanel panel = new JPanel();
        ...
        return panel;
    }
下面是从JPanel扩展而来的类

public class testpanel extends JPanel {
    JLabel titlelabel;

    public testpanel(){
        initsettings();

        GroupLayout layout = new GroupLayout(this);
        this.setLayout(layout);
        ...
    }
}
这是我的主要课程

public class HelloWorld extends JFrame {

    public HelloWorld(){
        initcomponent();
        ...
    }

    private void initcomponent() {
        testpanel tstpan = DragsExternal.RegisterAsDraggable();
        ...
    }

    public static void main(String[] args){
        new HelloWorld().setVisible(true);
    }
}
我删除了一些代码,因为这样做不会太长

--编辑--

我试图通过在JPanel中加入testpanel来实现这一点(根据您的答案)。但它显示了这个错误

Exception in thread "main" java.lang.ClassCastException: javax.swing.JPanel cannot be cast to testpanel
有人能帮忙吗?
请原谅我的英语。

请帮自己一个忙:学习并遵循Java编码标准

您只需要做一个更改:

 JPanel tstpan = DragsExternal.RegisterAsDraggable();

您需要将Jpanel添加到测试面板

private void initcomponent() {
    testpanel tstpan = (testpanel) DragsExternal.RegisterAsDraggable();
    ...
}

TestPanel
TestPanel
,如果是testpanel,那么您应该遵循Java编码标准。
private void initcomponent() {
    testpanel tstpan = (testpanel) DragsExternal.RegisterAsDraggable();
    ...
}