BAY1394 2016-07-07 05:23 采纳率: 0%
浏览 1223

JAVA JLabel自定义子类无法显示

import java.awt.*;
import java.util.Scanner;

import javax.swing.*;

public class Test_16_13 extends JFrame{

public Test_16_13(){
    ImageIcon im = new ImageIcon("image/slide1.jpg");
    String s = "jlabel_mine";
    JLabel1 j1 = new JLabel1(s);        
    add(j1);        
        //add(new JLabel("JLabel标签")); 
}

public static void  main(String[] args){    
    Test_16_13 frame = new Test_16_13();
    frame.setSize(800, 600);
    frame.setTitle("Exercise15_8");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null); // Center the frame
    frame.setVisible(true);        
}   
class JLabel1 extends JLabel{
    private ImageIcon ic;
    private String s;
    public JLabel1(ImageIcon ic){
        this.ic =  ic;
    }
    public JLabel1(String s){
        this.s = s;
    }
    }

}

代码如上,我在主类Test_16_13里面自定义了一个JLabel子类JLabel1,然后在JFrame的构造函数中添加,但是无法在JFrame里面显示,请问是为什么?
而如果直接使用JLabel进行添加是可以显示的。小弟初学,希望大神不吝赐教!谢谢!

  • 写回答

1条回答 默认 最新

  • BAY1394 2016-07-07 08:18
    关注

    刚才把子类和父类的教程又看了一遍,想了下,原来我新建子类有一个最大的问题。那就是没有重载父类的构造函数。我的构造函数都是使用的自定义的构造函数。
    所以,我的子类不能被认可。下面是我修改的JLabel1的构造函数:

     class JLabel1 extends JLabel{
    //      private ImageIcon ic;
    //      private String s;
            public JLabel1(ImageIcon ic){
                super(ic);
            }
            public JLabel1(String s){
    //          this.s = s;
                super(s);
            }
            }
    

    经过了这些修改以后,能够正常显示。

    评论

报告相同问题?

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看