java求问:为什么主类继承JPanel就是对的,继承JFrame就会出错,或者帮我改下 10

packagea;importjava.awt.*;importjavax.swing.*;publicclassaextendsJPanel//------------... package a;

import java.awt.*;
import javax.swing.*;

public class a extends JPanel//------------------不能继承JFrame
{
public void paint(Graphics g)
{
g.drawString("Hello World!!",100,50);
}
public static void main(String args[])
{
a jp=new a(); //初始化JPanel
JFrame jf=new JFrame(); //初始化JFrame
jf.add(jp); //JPanel加入JFrame
jf.setTitle("drawString示例"); //创建标题
jf.setBounds(1000,100,300,150); //设置位置和大小
jf.setResizable(true);
jf.setVisible(true); //可视度
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//exit(0);
}
}
展开
 我来答
雪飞潇潇
2015-09-29 · TA获得超过6275个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:869万
展开全部
  1. 分析你的代码,如果继承自JFrame 那么jp 就是一个JFrame,代码jf.add(jp);就是把一个JFrame加入到另外一个JFrame (jf)当中.就会报错

  2. 修改后的代码


  3. import java.awt.Graphics;
    import javax.swing.JFrame;
    import javax.swing.JPanel;

    public class a extends JFrame// ------------------可以继承JFrame
    {
    public void paint(Graphics g) {
    g.drawString("Hello World!!", 100, 50);
    }

    public static void main(String args[]) {
    JPanel jp = new JPanel();
    a frame = new a();
    frame.add(jp); // JPanel加入JFrame
    frame.setTitle("drawString示例"); // 创建标题
    frame.setBounds(1000, 100, 300, 150); // 设置位置和大小
    frame.setResizable(true);
    frame.setVisible(true); // 可视度
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// exit(0);
    }
    }
追问
a无论继承自JFrame还是JPanel都不会有影响吗?
追答
a是jframe 那就把jpanel添加到a进去
a是jpanel 那就把a添加到jframe里去

建议你的类名不要用一个小写字母表示,容易搞不清是什么含义的类.
建议你使用首字母大写,然后包含具体含义的英文或拼音去表达.
比如当a是用来表示JFrame的一个子类.那就可以使用 ChuangKou 或者MyJFrame
如果a是用来表示JPanel的的一个子类.那就可以使用MianBan 或者 MyJPanel
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式