Applet-Fehler - java.lang.reflektieren.InvocationTargetException
Ich mache ein Spiel, in form eines Applets. Also ja, wenn ich versuche, die zur Ausführung dieser Applets in meinem browser, bekomme ich eine Fehlermeldung, wenn ich auf details, heißt es, "java.lang.reflektieren.InvocationTargetException". Hier ist mein code, ich hoffe, dass wird niemand stehlen, es. Wie mache ich es Weg, damit ich es ausführen zu können?
package applettest;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.*;
import java.net.*;
import javax.imageio.ImageIO;
import javax.swing.*;
public class NewApplet extends JApplet {
String string1 = ""; //Used in the LOGINCHECK (Username)
String string2 = ""; //Used in the LOGINCHECK (Password)
////////////////////////////////////////////////////////////////////////////
JPanel startScreen = new JPanel(); //The JPanel for the player's START SCREEN
JLabel usernameLabel = new JLabel("Username:");//Creating & initializing a new JLabel.
JLabel passwordLabel = new JLabel("Password:");//Creating & initializing a new JLabe.
JTextField username = new JTextField();//Creating & initializing a new JTextField.
JTextField password = new JTextField();//Creating & initializing a new JTextField.
JButton start = new JButton(" Start ");//Creating & initializing a new button.
JButton startNew = new JButton(" Start New Game ");//Creating & initializing a new button.
Font titleFont = new Font("Arial", Font.BOLD, 30);//Creating a font.
Font labelFont = new Font("Courier", Font.PLAIN, 20);//Creating a font.
Font buttonFont = new Font("Courier", Font.PLAIN, 14);//Creating a font.
Color lightGreen = new Color(51, 255, 0);//Creating a color, light green.
Color darkRed = new Color(204, 0, 0);//Creating a color, dark red.
Dimension tfd = new Dimension(200, 20);//Creating a dimension, tfd (Text Field Dimension)
////////////////////////////////////////////////////////////////////////////
JPanel newCharacterScreen = new JPanel();//The JPanel for the player's REGISTER SCREEN
JTextField desiredUsername = new JTextField();
JLabel newCharacterTitleLabel = new JLabel("NEW CHARACTER");
JLabel usernameLabel2 = new JLabel("Enter Desired Username:");
JLabel chooseGender = new JLabel("Choose Desired Gender:");
JLabel maleLabel = new JLabel("Male");
JLabel femaleLabel = new JLabel("Female");
JRadioButton male = new JRadioButton("Male");
JRadioButton female = new JRadioButton("Female");
ButtonGroup genderGroup = new ButtonGroup();
JButton nextButton = new JButton(" Continue ");
////////////////////////////////////////////////////////////////////////////
JPanel characterCreationScreen = new JPanel();//The JPanel for the player's Character Creation Screen
////////////////////////////////////////////////////////////////////////////
//File locations for the character info
String characterName = "";
String passwordString = "";
String gender = "";
File filename = new File(System.getenv("APPDATA") + "\\.outer\\info\\" + characterName + "\\charInfo.txt");
File filename2 = new File(System.getenv("APPDATA") + "\\.outer\\info\\" + characterName + "\\playerStats.txt");
File filename3 = new File(System.getenv("APPDATA") + "\\.outer\\info\\" + characterName + "\\playerExpLvl.txt");
//File locations for the RACE IMAGES.
File dwarfPNGOutput = new File(System.getenv("APPDATA") + "\\.outer\\images\\dwarf.png");
File humanPNGOutput = new File(System.getenv("APPDATA") + "\\.outer\\images\\human.png");
File elfPNGOutput = new File(System.getenv("APPDATA") + "\\.outer\\images\\elf.png");
File orcPNGOutput = new File(System.getenv("APPDATA") + "\\.outer\\images\\orc.png");
//File locations for the CLASS images.
File knightPNGOutput = new File(System.getenv("APPDATA") + "\\.outer\\images\\knight.png");
File wizardPNGOutput = new File(System.getenv("APPDATA") + "\\.outer\\images\\wizard.png");
File rangerPNGOutput = new File(System.getenv("APPDATA") + "\\.outer\\images\\ranger.png");
File priestPNGOutput = new File(System.getenv("APPDATA") + "\\.outer\\images\\priest.png");
//File locations for the APPDATA directory + images folder.
File directory = new File(System.getenv("APPDATA") + "\\.outer");
File directoryIMAGE = new File(System.getenv("APPDATA") + "\\.outer\\images");
File directoryInfo = new File(System.getenv("APPDATA") + "\\.outer\\info");
//URL's FOR RACE PHOTOS
String dwarfPNG = "http://eaglepwn.ucoz.com/images/dwarf.png";
String humanPNG = "http://eaglepwn.ucoz.com/images/human.png";
String elfPNG = "http://eaglepwn.ucoz.com/images/elf.png";
String orcPNG = "http://eaglepwn.ucoz.com/images/orc.png";
/////////////
String knightPNG = "http://eaglepwn.ucoz.com/images/knight.png";
String wizardPNG = "http://eaglepwn.ucoz.com/images/wizard.png";
String rangerPNG = "http://eaglepwn.ucoz.com/images/ranger.png";
String priestPNG = "http://eaglepwn.ucoz.com/images/priest.png";
/////////////
@Override
public void init() {
initComponents();
try {
//This sets the look and feel to NIMBUS.
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (Exception e) {
e.printStackTrace();
}
//Calls the method showStartScreen()
startGame();
}
//<editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
getContentPane().setLayout(new java.awt.CardLayout());
}//</editor-fold>
//Variables declaration - do not modify
//End of variables declaration
public void colorAndFont() {
//Setting the background colors of all panels to black.
startScreen.setBackground(Color.BLACK);
newCharacterScreen.setBackground(Color.BLACK);
characterCreationScreen.setBackground(Color.BLACK);
//Setting the font and color of the labels.
usernameLabel.setFont(labelFont);
usernameLabel.setForeground(lightGreen);
passwordLabel.setFont(labelFont);
passwordLabel.setForeground(lightGreen);
newCharacterTitleLabel.setFont(titleFont);
newCharacterTitleLabel.setForeground(darkRed);
usernameLabel2.setFont(labelFont);
usernameLabel2.setForeground(lightGreen);
chooseGender.setFont(labelFont);
chooseGender.setForeground(lightGreen);
maleLabel.setFont(labelFont);
maleLabel.setForeground(lightGreen);
femaleLabel.setFont(labelFont);
femaleLabel.setForeground(lightGreen);
//Setting the font and color of the TextFields.
username.setFont(buttonFont);
username.setForeground(lightGreen);
username.setBackground(Color.BLACK);
password.setFont(buttonFont);
password.setForeground(lightGreen);
password.setBackground(Color.BLACK);
desiredUsername.setFont(buttonFont);
desiredUsername.setForeground(lightGreen);
desiredUsername.setBackground(Color.BLACK);
//Setting the font and color of all the buttons.
start.setFont(buttonFont);
start.setForeground(lightGreen);
start.setBackground(Color.BLACK);
start.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 255, 0), 2, true));
startNew.setFont(buttonFont);
startNew.setForeground(lightGreen);
startNew.setBackground(Color.BLACK);
startNew.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 255, 0), 2, true));
nextButton.setFont(buttonFont);
nextButton.setForeground(lightGreen);
nextButton.setBackground(Color.BLACK);
nextButton.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(102, 255, 0), 2, true));
//Setting the font and color of all the JRadioButtons
male.setFont(buttonFont);
male.setForeground(lightGreen);
male.setBackground(Color.BLACK);
female.setFont(buttonFont);
female.setForeground(lightGreen);
female.setBackground(Color.BLACK);
}
public void startScreenInfo(){
//Setting the size of the actual applet screen.
setSize(450, 350);
//Adding a BOX LAYOUT to the Start Screen Panel
startScreen.setLayout(new BoxLayout(startScreen, BoxLayout.Y_AXIS));
//Adding a Box Filler
startScreen.add(new Box.Filler(tfd, tfd, tfd));
//Adding a Box Filler
startScreen.add(new Box.Filler(tfd, tfd, tfd));
//Adding and editing info for usernameLabel
startScreen.add(usernameLabel);
usernameLabel.setVisible(true);
usernameLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
//Adding a Box Filler
startScreen.add(new Box.Filler(tfd, tfd, tfd));
//Adding and editing info for username TextField
startScreen.add(username);
username.setVisible(true);
username.setMinimumSize(tfd);
username.setMaximumSize(tfd);
username.setPreferredSize(tfd);
username.setAlignmentX(Component.CENTER_ALIGNMENT);
username.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(51, 255, 0), 2, true));
//Adding a Box Filler
startScreen.add(new Box.Filler(tfd, tfd, tfd));
//Adding and editing info for passwordLabel
startScreen.add(passwordLabel);
passwordLabel.setVisible(true);
passwordLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
//Adding a Box Filler
startScreen.add(new Box.Filler(tfd, tfd, tfd));
//Adding and editing info for password TextField
startScreen.add(password);
password.setVisible(true);
password.setMinimumSize(tfd);
password.setMaximumSize(tfd);
password.setPreferredSize(tfd);
password.setAlignmentX(Component.CENTER_ALIGNMENT);
password.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(51, 255, 0), 2, true));
//Adding a Box Filler
startScreen.add(new Box.Filler(tfd, tfd, tfd));
//Adding and editing info for start JButton
startScreen.add(start);
start.setVisible(true);
start.setAlignmentX(Component.CENTER_ALIGNMENT);
start.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
characterName = username.getText();
passwordString = password.getText();
logincheck();
if (string1.equals(characterName) && string2.equals(passwordString)) {
System.out.println("YOU ARE LOGGED IN!");
} else if (!string1.equals(characterName) && string2.equals(passwordString)) {
System.out.println("Incorrect Username");
} else if (string1.equals(characterName) && !string2.equals(passwordString)) {
System.out.println("Incorrect Password");
}
}
});
//Adding a Box Filler
startScreen.add(new Box.Filler(tfd, tfd, tfd));
//Adding and editing info for startNew JButton
startScreen.add(startNew);
startNew.setVisible(true);
startNew.setAlignmentX(Component.CENTER_ALIGNMENT);
//Adding an actionlistener to the startNew JBUTTON
startNew.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//Trying to create the new directory in APPDATA
try {
if (directory.mkdir()) {
System.out.println("APPDATA Directory Created");
} else {
System.out.println("APPDATA Directory is not created");
}
} catch (Exception ex) {
ex.printStackTrace();
}
//Trying to create a new directory, inside an already made directory.
try {
if (directoryIMAGE.mkdir()) {
System.out.println("Images Directory Created");
} else {
System.out.println("Image Directory is not created");
}
} catch (Exception ex) {
ex.printStackTrace();
}
//Downloads images into directory, after calling method.
downloadImages();
downloadImages2();
showNewCharacterScreen();
}
});
//Adding a Box Filler
startScreen.add(new Box.Filler(tfd, tfd, tfd));
//Calling the method colorAndFont to set the color and font of the panels.
colorAndFont();
//Adding the startScreen to the JApplet, setting it visible
}
public void newCharacterScreenInfo() {
//Setting the size of the actual applet screen.
setSize(450, 350);
//ADDING RADIO BUTTONS INTO BUTTON GROUP
genderGroup.add(male);
genderGroup.add(female);
//Adding a BOX LAYOUT to the Start Screen Panel
newCharacterScreen.setLayout(new BoxLayout(newCharacterScreen, BoxLayout.Y_AXIS));
//Adding and editing the TITLE label at the top.
newCharacterScreen.add(newCharacterTitleLabel);
newCharacterTitleLabel.setVisible(true);
newCharacterTitleLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
//Adding a Box Filler
newCharacterScreen.add(new Box.Filler(tfd, tfd, tfd));
//Adding a Box Filler
newCharacterScreen.add(new Box.Filler(tfd, tfd, tfd));
//Adding and editing the Desired Username Label
newCharacterScreen.add(usernameLabel2);
usernameLabel2.setVisible(true);
usernameLabel2.setAlignmentX(Component.CENTER_ALIGNMENT);
//Adding and editing info for desired username JTextField
newCharacterScreen.add(desiredUsername);
desiredUsername.setVisible(true);
desiredUsername.setMinimumSize(tfd);
desiredUsername.setMaximumSize(tfd);
desiredUsername.setPreferredSize(tfd);
desiredUsername.setAlignmentX(Component.CENTER_ALIGNMENT);
//Adding and editing info for Choose Gender label
newCharacterScreen.add(chooseGender);
chooseGender.setVisible(true);
chooseGender.setAlignmentX(Component.CENTER_ALIGNMENT);
//Adding and editing info for Male Label
newCharacterScreen.add(maleLabel);
maleLabel.setVisible(true);
maleLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
//Adding and editing info for Male JRadioButton
newCharacterScreen.add(male);
male.setVisible(true);
male.setAlignmentX(Component.CENTER_ALIGNMENT);
male.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
gender = "Male";
}
});
//Adding and editing info for Female label.
newCharacterScreen.add(femaleLabel);
femaleLabel.setVisible(true);
femaleLabel.setAlignmentX(Component.CENTER_ALIGNMENT);
//Adding and editing info for Female JRadioButton
newCharacterScreen.add(female);
female.setVisible(true);
female.setAlignmentX(Component.CENTER_ALIGNMENT);
female.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
gender = "Female";
}
});
//Adding and editing info for nextButton JButton
newCharacterScreen.add(nextButton);
nextButton.setVisible(true);
nextButton.setAlignmentX(Component.CENTER_ALIGNMENT);
nextButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
register();
}
});
}
public void factionScreenInfo() {
}
public void startGame() {
startScreenInfo();
newCharacterScreenInfo();
factionScreenInfo();
add(startScreen);
add(newCharacterScreen);
add(characterCreationScreen);
startScreen.setVisible(true);
System.out.println("Start Screen added");
}
public void showNewCharacterScreen() {
startScreen.setVisible(false);
newCharacterScreen.setVisible(true);
revalidate();
repaint();
}
public void showCharacterCreationScreen() {
}
public void showFactionScreen() {
}
public void logincheck() {
//Creating the new buffered reader, which reads in stats.
BufferedReader bre;
try {
bre = new BufferedReader(new InputStreamReader(new FileInputStream(filename)));
String line;
while ((line = bre.readLine()) != null) {
if (line.startsWith("u")) {
string1 = line;
String substring = string1.substring(1);
string1 = substring;
} else if (line.startsWith("p")) {
string2 = line;
String substring = string2.substring(1);
string2 = substring;
}
}
bre.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println("Account hasn't been created yet.");
}
}
public void downloadImages() {
System.out.println("Downloading race images....");
try {
//making a URL out of the strings..
URL urlItem = new URL(dwarfPNG);
URL urlItem2 = new URL(humanPNG);
URL urlItem3 = new URL(elfPNG);
URL urlItem4 = new URL(orcPNG);
//Creating images from the URL's.
Image imageBR = ImageIO.read(urlItem);
Image imageBR2 = ImageIO.read(urlItem2);
Image imageBR3 = ImageIO.read(urlItem3);
Image imageBR4 = ImageIO.read(urlItem4);
//Creating bufferedImages from the Images.
BufferedImage cpimg = (BufferedImage) imageBR;
BufferedImage cpimg2 = (BufferedImage) imageBR2;
BufferedImage cpimg3 = (BufferedImage) imageBR3;
BufferedImage cpimg4 = (BufferedImage) imageBR4;
//Writing images, using bufferedImages and images.
ImageIO.write(cpimg, "png", dwarfPNGOutput);
ImageIO.write(cpimg2, "png", humanPNGOutput);
ImageIO.write(cpimg3, "png", elfPNGOutput);
ImageIO.write(cpimg4, "png", orcPNGOutput);
System.out.println("Race Images downloaded....");
} catch (Exception e) {
e.printStackTrace();
System.out.println("Problem with internet, or resources.");
}
}
public void downloadImages2() {
System.out.println("Downloading class images....");
try {
URL urlItem = new URL(knightPNG);
URL urlItem2 = new URL(wizardPNG);
URL urlItem3 = new URL(rangerPNG);
URL urlItem4 = new URL(priestPNG);
Image imageBR = ImageIO.read(urlItem);
Image imageBR2 = ImageIO.read(urlItem2);
Image imageBR3 = ImageIO.read(urlItem3);
Image imageBR4 = ImageIO.read(urlItem4);
BufferedImage cpimg = (BufferedImage) imageBR;
BufferedImage cpimg2 = (BufferedImage) imageBR2;
BufferedImage cpimg3 = (BufferedImage) imageBR3;
BufferedImage cpimg4 = (BufferedImage) imageBR4;
ImageIO.write(cpimg, "png", knightPNGOutput);
ImageIO.write(cpimg2, "png", wizardPNGOutput);
ImageIO.write(cpimg3, "png", rangerPNGOutput);
ImageIO.write(cpimg4, "png", priestPNGOutput);
System.out.println("Class Images downloaded....");
} catch (Exception e) {
e.printStackTrace();
System.out.println("Problem with internet, or resources.");
}
}
public void register() {
characterName = desiredUsername.getText();
File directoryName = new File(System.getenv("APPDATA") + "\\.outer\\info" + "\\" + characterName);
filename = new File(System.getenv("APPDATA") + "\\.outer\\info\\" + characterName + "\\charInfo.txt");
filename2 = new File(System.getenv("APPDATA") + "\\.outer\\info\\" + characterName + "\\playerStats.txt");
filename3 = new File(System.getenv("APPDATA") + "\\.outer\\info\\" + characterName + "\\playerExpLvl.txt");
//Tries to create a new directory.
try {
if (directory.mkdir()) {
System.out.println("APPDATA Directory Created");
} else {
System.out.println("APPDATA Directory is not created");
}
} catch (Exception e) {
e.printStackTrace();
}
//Tries to create a new directory
try {
if (directoryIMAGE.mkdir()) {
System.out.println("Images Directory Created");
} else {
System.out.println("Image Directory is not created");
}
} catch (Exception e) {
e.printStackTrace();
}
//Tries to create a newer directory.
try {
if (directoryInfo.mkdir()) {
System.out.println("Images Directory Created");
} else {
System.out.println("Image Directory is not created");
}
} catch (Exception e) {
e.printStackTrace();
}//Tries to create a even newer directory
try {
if (directoryName.mkdir()) {
System.out.println("Images Directory Created");
} else {
System.out.println("Image Directory is not created");
}
} catch (Exception e) {
e.printStackTrace();
}
/////////////////////////////////////////////////////////////////
BufferedWriter bufferedWriter = null;
try {
// FileWriter out = new FileWriter(filename, true);
//^^^ IF I WANTED TO APPEND TEXT AFTER!
//Construct the BufferedWriter object
bufferedWriter = new BufferedWriter(new FileWriter(filename));
//Start writing to the output stream
bufferedWriter.append("u" + desiredUsername.getText());
bufferedWriter.newLine();
bufferedWriter.append("g" + gender);
bufferedWriter.newLine();
} catch (Exception ex) {
ex.printStackTrace();
System.out.println("Name already exists.");
} finally {
//Close the BufferedWriter
try {
if (bufferedWriter != null) {
bufferedWriter.flush();
bufferedWriter.close();
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
showCharacterCreationScreen();
}
}
- Poste bitte die vollständige Ausnahme, einschließlich der Ausnahme, die keinen Zweifel verschachtelt ist es. Es würde auch helfen, wenn Sie schreiben, eine kurze, aber vollständige Programm zeigt das problem, nicht nur eine enorme code-dump.
- Hier ist ein Bild!!! Fehler-Bild
- Und die details?
- Ich habe keine. Das erscheint richtig, wenn ich das Programm starten und im browser. Die details sind HIER
- Das ist das, was sich zeigt, wenn Sie auf Details?
- Ja, sir. Ich bin sehr verwirrt. Ich habe versucht, über Google, es sagte etwas über eine doppelte Methodennamen? Ich habe keines.. hmm...
- Nun, haben Sie versucht, einen viel kürzeren applet? Eine, die im Grunde nichts ist - es wäre nützlich, beseitigen Sie den code vor das problem...
- lassen Sie uns weiter, diese Diskussion im chat
- Es war wie 5 Minuten, bevor ich war, Lesen und schreiben von Dateien. Es funktioniert innerhalb der IDE, aber nicht im browser.
- Holen Sie sich ein einfaches applet im browser ersten.
- Okay. Ich habe. Es war eine einfache Uhr-Programm.
- Nein, wenn ich sage einfach, ich meine bei den meisten eine Schaltfläche, die nichts tut. Etwas, das in weniger als 20 Zeilen zu posten, anstatt die 635 Zeilen, die du gepostet hast hier...
- Lol. Ok. Ich habe gerade alles gelöscht und Hinzugefügt eine Schaltfläche.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zunächst, Sie haben zwei actionPerformed-Methoden mit den gleichen Parametern innerhalb der Methode startScreenInfo(). Das könnte das problem sein.
Du eigentlich noch ein paar andere actionPerformed-Methoden zusammengestellt, der innerhalb einer Methode. Versuchen Sie die Kombination Ihrer actionPerformed-Methoden in einem und sehen, ob das funktioniert.
Laut der zweiten Antwort auf die folgende Frage, der Fehler tritt auf, wenn zwei Klassen mit demselben Namen in einem einzigen Paket oder vielleicht zwei Methoden mit dem gleichen Namen und Parameter: Referenz
Ich bin mir nicht 100% ob das das problem ist hier, aber es könnte Ihnen helfen.