DrawFrame是你自己写的一个类么

解决方案 »

  1.   

    就是,书不可信上次还看到一本书把javascript的内容放到java里,巨汗...
      

  2.   

    DrawFrame是什么,自定义的类吧
      

  3.   

    我自己写的试了,后来把书附带的运行也是这个问题,
    DrawFrame 是自己定义的类,如下:
    import javax.swing.*;
    import java.awt.*;public class DrawFrame extends JFrame
    {
    public DrawFrame(String szTitle)
    {
    setTitle(szTitle);
    setDefaultCloseOperation(EXIT_ON_CLOSE);

    setJMenuBar(menuBar);
    JMenu fileMenu=new JMenu("File");
    JMenu drawMenu=new JMenu("Draw");

    fileMenu.setMnemonic('F');
    drawMenu.setMnemonic('D');

    menuBar.add(fileMenu);
    NewMenu=fileMenu.add("New");
    NewMenu.setAccelerator(KeyStroke.getKeyStroke('N',Event.CTRL_MASK));
    OpenMenu=fileMenu.add("Open");
    CloseMenu=fileMenu.add("Close");
    fileMenu.addSeparator();
    SaveMenu=fileMenu.add("Save");
    SaveasMenu=fileMenu.add("Save As");
    fileMenu.addSeparator();
    PrintMenu=fileMenu.add("Print");
    fileMenu.addSeparator();
    ExitMenu=fileMenu.add("Exit"); menuBar.add(drawMenu);
    drawMenu.add(LineItem=new JRadioButtonMenuItem("Line",true));
    drawMenu.add(RectangleItem=new JRadioButtonMenuItem("Rectangle",false));
    drawMenu.add(CircleItem=new JRadioButtonMenuItem("Circle",false));
    drawMenu.add(CurveItem=new JRadioButtonMenuItem("Curve",false));
    drawMenu.add(TextItem=new JRadioButtonMenuItem("Text",false));

    ButtonGroup types=new ButtonGroup();
    types.add(LineItem);
    types.add(RectangleItem);
    types.add(CircleItem);
    types.add(CurveItem);
    types.add(TextItem); drawMenu.addSeparator();
    drawMenu.add(RedItem=new JCheckBoxMenuItem("Red",true));
    drawMenu.add(YellowItem=new JCheckBoxMenuItem("Yellow",false));
    drawMenu.add(GreenItem=new JCheckBoxMenuItem("Green",false));
    drawMenu.add(BlueItem=new JCheckBoxMenuItem("Blue",false)); }
    private JMenuBar menuBar=new JMenuBar(); //File Menu;
    private JMenuItem NewMenu,OpenMenu,CloseMenu,SaveMenu,
    SaveasMenu,PrintMenu,ExitMenu; //Draw Menu;
    private JRadioButtonMenuItem LineItem,RectangleItem,
    CircleItem,CurveItem,TextItem; private JCheckBoxMenuItem RedItem,YellowItem,GreenItem,BlueItem; 
    }
      

  4.   

    就是《Java2 编程指南》书上的例子。
      

  5.   

    楼主,帮你调试了一下.你的程序没有问题啊!
    按照你贴出来的两个程序Draw.java和DrawFrame.java都没有问题!
    "如果不加入public void init()那个函数也没有问题
    加了就出现这个appletviewer显示“未初始化小程序“,无法显示。"
    什么意思?你在Draw.java中不是存在这个初始化函数嘛?
    也没有出现你说的问题提示!你在看看吧...但是别忘记么把两个文件发在同一package哟!
      

  6.   

    将public void init(){};去掉,也没有什么问题.运行正常啊!
    import java.awt.*;
    import javax.swing.*;public class Draw extends JApplet
    {

    public static void main(String[] args)
    {
    theApp=new Draw();
    //theApp.init();
    //}


    //public void init()
    //{

     window=new DrawFrame("Test Draw");
    Toolkit thekit=window.getToolkit();
    Dimension wndSize=thekit.getScreenSize();

    window.setBounds(wndSize.width/4,wndSize.height/4,
    wndSize.width/2,wndSize.height/2);
    window.setVisible(true);
    }

    private static DrawFrame window;
    private static Draw theApp;
    public void paint(Graphics g)
    {
    g.drawString("Jerry",20,90);
    }
    }
      

  7.   

    我说过没有原码没有问题,如果不加入init()函数,用appletviewer打开时会
    在屏幕上显示"Jerry",但是调用init()函数中的内容后,就appletviewer的状态栏
    出现了这个“未初始化小程序“,而且原来的"Jerry“也不见了。不知道你们在自己
    的机上可不可以用appletviewer查看到窗口???
      

  8.   

    桌面程序是没有问题的。问题是出在用appletviewer 察看时。
    附带Draw.html调用文件。
    <APPLET CODE="Draw.class" WIDTH=500 HEIGHT=400>
    </APPLET>
      

  9.   

    你用到了 swing控件,
    调用方法不是这样子的。
    你用%java_home%\bin\HtmlConverter 来转换一下你的html代码就可以了。注意,请配置好你的%java_home% 和classpath
    同时,请再命令窗口调用,
    正常情况会弹出中文界面,你就可以转换了
      

  10.   

    我的java_home 和 classpath配置如下:
    JAVA_HOME  H:\Java\J2SDK_NB\j2sdk1.4.2
    CLASSPATH  .;%JAVA_HOME%\lib
    PATH       %JAVA_HOME%\binhtmlConverter是用来转换html,使得其可以在IE浏览器下运行的,
    没有转换之前只可以在appletviewer下使用。跟这个没关系,我现在
    是在appletviewer下调试。而且我的全部程序都时放在bin目录下执行的。
      

  11.   

    大家给我个可以运行在appletviewer中的窗口程序也可以啊,
    要有窗口和菜单的。
      

  12.   

    //file MainApplet.java
    import java.applet.Applet;
    public class MainApplet extends Applet
    {
    public void init()
    {
    new PopFrame().show();
    super.init();
    }
    }//file PopFrame.java
    import java.awt.Frame;
    import java.awt.Menu;
    import java.awt.MenuBar;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    public class PopFrame extends Frame
    {
    public PopFrame()
    {
    super();
    this.setSize(200,200);
    this.setMenuBar(getMainMenuBar());
    SymWindow aSymWindow = new SymWindow();
    this.addWindowListener(aSymWindow);
    }

    private MenuBar mainMenuBar=null;
    private MenuBar getMainMenuBar()
    {
    if(mainMenuBar == null)
    {
    mainMenuBar=new MenuBar();
    mainMenuBar.add(new Menu("File"));
    }
    return mainMenuBar;
    }
    class SymWindow extends WindowAdapter
    {
    public void windowClosing(WindowEvent event)
    {
    Object object = event.getSource();
    if (object == PopFrame.this)
    onWindowClosing(event);
    }
    }

    void onWindowClosing(WindowEvent event)
    {
    setVisible(false);  // hide the Frame
    }
    }// file sample.html
    <html>
    <body>
    <applet code=MainApplet.class width="200" height="200" >
    </applet>
    </body>
    </html>
      

  13.   

    主  题:  天啊!世态炎凉,没法结贴!!! 
    作  者:  JerryGPS ()  
    等  级:    
    信 誉 值:  100 
    所属论坛:  Java J2SE / 基础类 
    问题点数:  1 
    回复次数:  20 
    发表时间:  2003-12-22 17:25:17 做完了才发现问题点数只有一点:(
      

  14.   

    Buffett(巴菲特)
    点数还不简单,
    你把我放在上面的那个Draw程序调试好,我给你50点,怎么样?
      

  15.   

    我试过了,你的程序在我的机器上完全没有一点问题
    jdk1.4.2_02+Eclipse2.12
    送50分给我吧
      

  16.   

    可以在appletviewer 下运行吗?
      

  17.   

    我用的是最原始的工具
    jdk1.4.2_02+记事本
      

  18.   

    本来就是拿appletviewer来运行的啊
      

  19.   

    public void init()
    {
    window=new DrawFrame("Test Draw");
    Toolkit thekit=window.getToolkit();
    Dimension wndSize=thekit.getScreenSize();

    window.setBounds(wndSize.width/4,wndSize.height/4,
    wndSize.width/2,wndSize.height/2);
    window.setVisible(true);
    }
    你根本就没有给theApp显示的机会,它怎么会调用paint方法??
    你在: window=new DrawFrame("Test Draw");这一行之后加上
    window.getContentPane().add(this,BorderLayout.CENTER);
    试试
    你看看JApplet的父类Container里面的paint、repaint就知道怎么回事了
      

  20.   

    hehecafe(我喜欢从高处跳下来的感觉) 老兄你懂不懂Applet怎么运行的???
    还装做很懂似的乱改
      

  21.   

    呵呵,我把代码拿下来,发现用java Draw也没有显示“Jerry”,所以就...
      

  22.   

    回贴之后才想起人家出现的不是这个问题,
    我使用appletviewer运行正常,没有出现错误啊
      

  23.   

    我觉得也是JRE版本的问题.怎么改呢?
      

  24.   

    我的JDK和JRE版本都是1.4.2的,有什么问题呢?
      

  25.   


    APPLET 是不要MAIN()的
    有了这个当然会有问题
      

  26.   

    applet当然不是以main()方法作为入口
    但是applet类也是类啊,其中可以写main()方法的
    这样可以使得这个程序既是applet也是application
    没有问题,肯定是别处的问题 ^_^