Java 将使用JPanel扩展的类转换为JPanel
我要做的是 我有一个名为“TestPanel”的类,它是从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(){
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();
...
}