java.lang.reflect.InvocationTargetException - 带有数组的applet

时间:2015-10-08 05:36:01

标签: java swing japplet invocationtargetexception

我正在试图弄清楚为什么我写的第三个小程序在BlueJ中表现得很好但是当我尝试在浏览器中查看它时会抛出“java.lang.reflect.InvocationTargetException”。我仍然是一个新手,也无法弄清楚在哪里可以查看完整的错误日志。请帮忙。

代码

/**
 * Array - Dictionary (English to Korean)
 * 
 * Jodi Rehlander
 * October, 2015 for CSci1130-51
 */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.text.*;
import java.applet.*;

public class Dictionary extends JApplet implements ActionListener
{
JLabel mainLabel, picLabel, header;
Image headerImg;
ImageIcon headerIcon, translateIcon;

JButton[ ] words =
    {
        new JButton( "Airplane" ),
        new JButton( "Car" ),
        new JButton( "Cat" ),
        new JButton( "Chair" ),
        new JButton( "Flag" ),
        new JButton( "Newspaper" ),
        new JButton( "Spoon" ),
        new JButton( "Paintbrush" ),
        new JButton( "Horse" ),
        new JButton( "Female" )

    };

ImageIcon[ ] pics =
    {
        new ImageIcon( "airplane.png" ),
        new ImageIcon( "car.png" ),
        new ImageIcon( "cat.png" ),
        new ImageIcon( "chair.png" ),
        new ImageIcon( "flag.png" ),
        new ImageIcon( "newspaper.png" ),
        new ImageIcon( "spoon.png" ),
        new ImageIcon( "paintbrush.png" ),
        new ImageIcon( "horse.png" ),
        new ImageIcon( "female.png" ),
    };



public void init( )
{
    //set default background to white
    getContentPane( ).setBackground( Color.WHITE );

    setLayout( new BorderLayout( ) );

    headerImg = getImage( getCodeBase( ), "headerImg.png" );
    headerIcon = new ImageIcon( headerImg );
    header = new JLabel ( headerIcon );
    add( header, BorderLayout.NORTH );




    translateIcon = new ImageIcon( );
    picLabel = new JLabel( );
    picLabel.setHorizontalAlignment( JLabel.CENTER );
    add( picLabel, BorderLayout.CENTER );


    JPanel pane = new JPanel( new GridLayout( 10, 0 ) );
    pane.setOpaque( true );
    for (int x=0; x < words.length; x++ )
    {
        words[x].addActionListener( this );
        pane.add( words[x] );
    }
    add( pane, BorderLayout.WEST );
}


public void actionPerformed( ActionEvent ae)
{
    Object obj = ae.getSource( );
    for( int x=0; x < words.length; x++ )
        if( obj == words[x] )
           picLabel.setIcon( pics[x] );




    repaint( );    
}
}

HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file automatically generated by BlueJ Java Development  -->
<!-- Environment.  It is regenerated automatically each time the  -->
<!-- applet is run.  Any manual changes made to file will be lost -->
<!-- when the applet is next run inside BlueJ.  Save into a       -->
<!-- directory outside of the package directory if you want to    -->
<!-- preserve this file. -->
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Dictionary Applet</title>
    </head>
    <body>
        <h1>Dictionary Applet</h1>
        <hr>
        <applet code="Dictionary.class" 
            width=600 
            height=500
            codebase="."

            alt="Your browser understands the &lt;APPLET&gt; tag but isn't running the applet, for some reason."
         >

            Your browser is ignoring the &lt;APPLET&gt; tag!      
        </applet>
        <hr>
    </body>
</html>

错误

    ui: Pushing modality for applet ID 1 with dialog sun.plugin.util.PluginSysUtil$DummyDialog[dialog0,-100,-100,132x38,layout=java.awt.BorderLayout,APPLICATION_MODAL,title=,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,3,25,126x10,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
basic: Dialog type is not candidate for embedding
ui: Pushing modality for applet ID 1 with dialog javax.swing.JDialog[dialog1,462,324,516x190,layout=java.awt.BorderLayout,TOOLKIT_MODAL,title=Application Error,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,3,25,510x162,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
ui: Pushing modality for applet ID 1 with dialog sun.plugin.util.PluginSysUtil$DummyDialog[dialog2,-100,-100,132x38,layout=java.awt.BorderLayout,APPLICATION_MODAL,title=,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=javax.swing.JRootPane[,3,25,126x10,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]    

1 个答案:

答案 0 :(得分:0)

要关闭循环 - 我们打算在类中使用unsigned .jars。我不得不将我的数组移动到方法然后它工作。所以我没有使用我的花哨的实例化,但我对参数可用性有了更多的了解。感谢所有回复的人。