标题:JPanel没有被运行
只看楼主
mahayu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:160
注 册:2007-8-3
 问题点数:0 回复次数:4 
JPanel没有被运行
package com.corejava.L73;

/**
 * 例题7-3 界面没有显示字符
 */
import java.awt.BorderLayout;
import java.awt.Graphics;

import javax.swing.JFrame;
import javax.swing.JPanel;

public class NotHelloJava {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        NotHelloWorldFrame frame = new NotHelloWorldFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

class NotHelloWorldFrame extends JFrame {

    public NotHelloWorldFrame() {
        setTitle("NotHelloWorld");
        setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT);
        NotHelloWorldPanel panel = new NotHelloWorldPanel();
        add(panel);
    }

    private static final int DEFAULT_WIDTH = 300;
    private static final int DEFAULT_HEIGHT = 200;
}

class NotHelloWorldPanel extends JPanel {
    public void paintComponet(Graphics g) {
        super.paintComponent(g);        
        g.drawString("NotHelloWorldPanel", MESSAGE_X, MESSAGE_Y); // 未显示
    }

    public static final int MESSAGE_X = 75;
    public static final int MESSAGE_Y = 100;
}

这是Java核心技术卷一第七章的例题,现在运行后没出现预期的效果(运行后在面板上会显示文字),调试发现红色代码部分未被运行,请教高手指点。
搜索更多相关主题的帖子: JPanel import frame awt args 
2008-02-19 09:54
thread
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-2-11
得分:0 
NotHelloWorldPanel panel = new NotHelloWorldPanel();
调用NotHelloWorldPanel类的构造方法
而NotHelloWorldPanel类没构造方法
我觉得已经运行NotHelloWorldPanel类
2008-02-20 19:30
lzf0112
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2006-4-9
得分:0 
因为paintComponet这个函数根本就没有被调用啊,你可以直接把这个函数名改成:paint,这样就可以达到你想要的效果!
2008-02-20 21:51
mahayu
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:122
专家分:160
注 册:2007-8-3
得分:0 
正确:public void paintComponent(Graphics g)
错误:public void paintComponet(Graphics g)
后来查到了,其实写错了字,看这个:
 public void paintComponet(Graphics g) {
        super.paintComponent(g);  ...}
这段应该是重写父类的paintComponent,结果方法名少写了个n,修正后运行正常,但原因不明...

研究Java和C#,,Jsp,Sql等各类编程技术, QQ:442013799  QQ群:47934757
2008-02-21 10:04
帅浪
Rank: 1
等 级:新手上路
威 望:1
帖 子:139
专家分:0
注 册:2007-4-4
得分:0 
回复 4# 的帖子
因为是Jpanel中的方法,改了当然就不同了!

世上事有难易乎?为之?则难者亦易矣;不为,则易者亦难矣
2008-02-26 21:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-200301-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.498865 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved