Funktion aus einer Java Datei in eine andere einbauen

wusli

Aktives Mitglied
Hallo, ich hab hier 2 Java Dateien/Quellcodes:
1.
Java:
package Hangman;



import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyListener;

import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.Desktop;
import java.awt.event.*;
 

public class Hangman extends JFrame   {


	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField buchstabe;
	private JTextField tf_ganz;
	private JPasswordField wort;
	 private Frame f;
	    private TextField tf;
	    
	    
	       

	/**
	 * Launch the application.
	 */
	



	public static void main(String[] args) {
		

		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Hangman frame = new Hangman();
					frame.setVisible(true);
					

				} catch (Exception e) {
					e.printStackTrace();
				}
				
				
			}
		});
	}



	

	public Hangman() {
		
		
		
		
		

		setTitle("Hangman");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 408, 397);
		contentPane = new JPanel();
		contentPane.setBackground(Color.LIGHT_GRAY);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		buchstabe = new JTextField();
		buchstabe.setBounds(207, 23, 86, 20);
		contentPane.add(buchstabe);
		buchstabe.setColumns(1);

		final JLabel imagelabel = new JLabel(new ImageIcon("0.gif"));
		imagelabel.setBackground(Color.LIGHT_GRAY);
		imagelabel.setBounds(10, 132, 204, 213);
		contentPane.add(imagelabel);

		final JTextArea nein = new JTextArea();
		nein.setToolTipText("Buchstaben die nicht vorkommen\r\n");
		nein.setBounds(224, 132, 166, 213);
		contentPane.add(nein);
		


		final JFrame frame = new JFrame();
		

		final StringBuilder gesuchtVerdeckt = new StringBuilder("____");
		final JTextArea ta = new JTextArea();
		ta.setBounds(10, 76, 378, 20);
		contentPane.add(ta);

		JButton pruefen = new JButton("Pr\u00FCfen");
		pruefen.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				String Buchstabe = buchstabe.getText();
				String Wort = wort.getText();
				String Zeichen = nein.getText();
				String word = ta.getText();
				int laenge = Zeichen.length();

				int index = Wort.indexOf(Buchstabe);

				if (index > -1) {
					gesuchtVerdeckt.replace(index, index + 1, Buchstabe);

				}

				else {
					nein.setText(nein.getText() + Buchstabe);

				}

				ta.setText(gesuchtVerdeckt.toString());
				buchstabe.setText("");

				switch (laenge) {
				case 0:
					ImageIcon icon0 = new ImageIcon("1.gif");
					imagelabel.setIcon(icon0);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 1:
					ImageIcon icon1 = new ImageIcon("2.gif");
					imagelabel.setIcon(icon1);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 2:
					ImageIcon icon2 = new ImageIcon("3.gif");
					imagelabel.setIcon(icon2);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 3:
					ImageIcon icon3 = new ImageIcon("4.gif");
					imagelabel.setIcon(icon3);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 4:
					ImageIcon icon4 = new ImageIcon("5.gif");
					imagelabel.setIcon(icon4);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 5:
					ImageIcon icon5 = new ImageIcon("6.gif");
					imagelabel.setIcon(icon5);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 6:
					ImageIcon icon6 = new ImageIcon("7.gif");
					imagelabel.setIcon(icon6);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 7:
					ImageIcon icon7 = new ImageIcon("8.gif");
					imagelabel.setIcon(icon7);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 8:
					ImageIcon icon8 = new ImageIcon("9.gif");
					imagelabel.setIcon(icon8);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 9:
					ImageIcon icon9 = new ImageIcon("10.gif");
					imagelabel.setIcon(icon9);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					int ok = JOptionPane.showConfirmDialog(null,
							"Neues Spiel?", "Sie haben Verloren",
							JOptionPane.YES_NO_OPTION);
					if (ok == JOptionPane.YES_OPTION) {

						wort.setVisible(true);
						wort.setText("");
						buchstabe.setText("");
						ta.setText("");
						nein.setText("");
						JLabel imagelabel1 = new JLabel(new ImageIcon("0.gif"));
						imagelabel1.setBounds(10, 95, 216, 250);
						contentPane.add(imagelabel);
						frame.pack();

					} else {
						System.exit(0);
					}
					break;
				}

				if (word.equals(Wort)) {
					int ok = JOptionPane.showConfirmDialog(null,
							"Neues Spiel?", "Sie haben Gewonnen",
							JOptionPane.YES_NO_OPTION);
					if (ok == JOptionPane.YES_OPTION) {
						wort.setVisible(true);
						wort.setText("");
						buchstabe.setText("");
						ta.setText(" ");
						nein.setText("");
						JLabel imagelabel1 = new JLabel(new ImageIcon("0.gif"));
						imagelabel1.setBounds(10, 95, 216, 250);
						contentPane.add(imagelabel);

					} else {
						System.exit(0);
					}
				}

			}

		}

		);
		
	   
	   
		
		
		
		
		pruefen.setBounds(301, 22, 89, 23);
		contentPane.add(pruefen);

		JLabel lblNewLabel = new JLabel("Buchstaben die nicht vorkommen");
		lblNewLabel.setFont(new Font("Arial", Font.BOLD, 11));
		lblNewLabel.setBounds(207, 107, 183, 14);
		contentPane.add(lblNewLabel);

		JButton ganz = new JButton("Ganzes Wort");
		ganz.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				String Wort = wort.getText();
				String ganzwort = tf_ganz.getText();
				if (ganzwort.equals(Wort)) {
					ta.setText(ganzwort);
					int ok = JOptionPane.showConfirmDialog(null,
							"Neues Spiel?", "Sie haben Gewonnen",
							JOptionPane.YES_NO_OPTION);
					if (ok == JOptionPane.YES_OPTION) {
						wort.setVisible(true);
						wort.setText("");
						buchstabe.setText("");
						ta.setText("");
						nein.setText("");
						tf_ganz.setText("");
					} else {
						System.exit(0);
					}

				} else {
					int ok = JOptionPane.showConfirmDialog(null,
							"Neues Spiel?", "Sie haben Verloren",
							JOptionPane.YES_NO_OPTION);
					if (ok == JOptionPane.YES_OPTION) {

						wort.setVisible(true);
						wort.setText("");
						buchstabe.setText("");
						ta.setText("");
						nein.setText("");
						tf_ganz.setText("");
						frame.pack();

					} else {
						System.exit(0);
					}
				}
			}
		});
		
	
		
		ganz.setBounds(301, 44, 89, 23);
		contentPane.add(ganz);

		tf_ganz = new JTextField();
		tf_ganz.setBounds(207, 45, 86, 20);
		contentPane.add(tf_ganz);
		tf_ganz.setColumns(10);

		wort = new JPasswordField();
		wort.setBounds(10, 45, 86, 20);
		contentPane.add(wort);

		JButton btnNewButton = new JButton("Hilfe");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				Desktop desktop = Desktop.getDesktop();

				try {
					Runtime.getRuntime().exec(
							new String[] {"hh",System.getProperty("user.dir")+ "/hilfe.chm" });
				} catch (Exception oError) {
					// Hier Fehler abfangen
				}
			}

			
		});
		btnNewButton.setBounds(301, 0, 89, 23);
		contentPane.add(btnNewButton);

	}
	 
	}

und hier der 2. Quellcode:
Java:
import java.awt.*;
import java.awt.event.*;

public class KeyListenerTest implements KeyListener {
    private Frame f;
    private TextField tf;
    
    public KeyListenerTest() {
        f = new Frame("Key-Listener-Test");
        tf = new TextField("Label");
    }
    
    public void launchFrame() {
        Label label = new Label("Drücken Sie eine Taste "
                                + "der Tastatur");
        
        // Hinzufügen der Komponenten zum Frame
        f.add(label, BorderLayout.NORTH);
        f.add(tf, BorderLayout.SOUTH);
        
        // Hinzufügen des Listeners
        tf.addKeyListener(this);
        tf.requestFocus();
        
        f.setSize(300, 200);
        f.setVisible(true);
    }
    
    // Implementieren der Methoden des Interfaces KeyListener
    public void keyTyped(KeyEvent e) {}
    
    public void keyPressed(KeyEvent e) {
        
    	if(e.getKeyCode() == e.VK_F1){
        	  try {
    				Runtime.getRuntime().exec(
    						new String[] {"hh",System.getProperty("user.dir")+ "/hilfe.chm" });
    			} catch (Exception oError) {
    				// Hier Fehler abfangen
    			}
          }
    }

    public void keyReleased(KeyEvent e) {}

    public static void main(String args[]) {
        KeyListenerTest keyTest = new KeyListenerTest();
        keyTest.launchFrame();
    }
}

und ich wollte fragen, ob mir jemand die Funktion vom 2ten Quellcode, bei F1 wird die Hilfe datei geöffnet, in den ersten Quellcode einbauen kann, irgendwie bekomm ich das nicht hin :/ :(

Danke im vorraus :)
 

Michael...

Top Contributor
kopiere doch einfach nur den KeyListener-Anteil aus dem zweiten Code in den ersten und registiere in dort an einem Textfeld "buchstabe" (falls er da hin soll) sowie es im zweiten Code mit dem Textfeld "tf" gemacht wird.
 

wusli

Aktives Mitglied
Ich möchte das ja so haben, dass wenn ich F1 drücke, eine Hilfe datei sich öffnet und hab jetzt halt schon total viel versucht, dass ein zubauen, aber erfolglos und dachte mir dann, frag ich einfach hier im Forum nach ob mir da jemand helfen kann, da die Community hier immer super ist :)
 

Michael...

Top Contributor
Was hast Du denn versucht? Was geht dann nicht? Und wie soll's denn funktionieren? (In einem anderen Thread hatte ich ja mal das Thema Key Bindings erwähnt, falls F1 in der gesamten Applikation wirksam sein soll)

Klar kann das hier jetzt einer machen, aber es ist doch fast nur ein Kopieren von der einen Klasse in die andere.
Einen KeyListener an eine JTextField zu hängen, ist ja jetzt auch nicht schwer:
Listening to JTextField Events with an KeyListener : JTextComponentSwingJava Tutorial
 

wusli

Aktives Mitglied
Ich hab versucht, das ganze in etwa so zu kopieren wie es im zweiten Quellcode ist, funktioniert nicht.
Der zweite Quellcode funktioniert soweit, ich drücke F1 und die Datei öffnet sich.
Klar kann das hier jetzt einer machen, aber es ist doch fast nur ein Kopieren von der einen Klasse in die andere.
Das ist ja das Problem, dass bekomm ich irgendwie ja nicht hin .____.
 

Flown

Administrator
Mitarbeiter
Du solltest dir mal gedanken machen wie etwas funktioniert und nicht einfach nur kopieren.
Wenn du es versuchst dann poste es auch - es wird dir keiner hinschreiben - damit man dir helfen kann.
 

wusli

Aktives Mitglied
Ok, dann hab ich mal ne Frage, im 2. Code ist diese Zeile drin:
Java:
 public void launchFrame() {
        Label label = new Label("Drücken Sie eine Taste "
                                + "der Tastatur");
        
        // Hinzufügen der Komponenten zum Frame
        f.add(label, BorderLayout.NORTH);
        f.add(tf, BorderLayout.SOUTH);
        
        // Hinzufügen des Listeners
        tf.addKeyListener(this);
        tf.requestFocus();
        
        f.setSize(300, 200);
        f.setVisible(true);
    }

die habe ich im ersten Code nicht und ich glaub an der liegt es das es nicht funktioniert, an welcher Stelle muss ich das oben einfügen und an welches Stelle muss ich das:
Java:
KeyListenerTest keyTest = new KeyListenerTest();
        keyTest.launchFrame();
einfügen?
 

Flown

Administrator
Mitarbeiter
Herje wenn niemand ein Posting liest dann wird das so nichts

Du brauchst für deine eigene Klasse: Einen Keylistener, ein Textfeld, den keylistener der zu deinem Textfeld hinzugefügt wird

Wie ich schon vorher sagte: Verstehen, nicht alles ausprobieren ... weil das ist nämlich kompletter nonsens, was du tun willst.
 

wusli

Aktives Mitglied
So ich hab jetzt einmal wie gesagt ein KeyListener implementiert, dann habe ich diese funktion:
Java:
public void keyTyped(KeyEvent e) {}
	    
	    public void keyPressed(KeyEvent e) {
	    	if(e.getKeyCode() == e.VK_F1){
	    	try {
                 Runtime.getRuntime().exec(
                         new String[] {"hh",System.getProperty("user.dir")+ "/hilfe.chm" });
             } catch (Exception oError) {
                 // Hier Fehler abfangen
             }
	    }
	    }

und dann habe ich dem Textfeld den keylistener zugewiesen:
Java:
public Hangman() {
		
		
		
		
		wort.addKeyListener(this);
		wort.requestFocus();
was mache ich falsch?
 

wusli

Aktives Mitglied
Ja, kommt ne Fehlermeldung

java.lang.NullPointerException
at Hangman.Hangman.<init>(Hangman.java:95)
at Hangman.Hangman$1.run(Hangman.java:73)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
 
C

Camino

Gast
Ja, kommt ne Fehlermeldung

java.lang.NullPointerException
at Hangman.Hangman.<init>(Hangman.java:95)

Was diese Fehlermeldung bedeutet, weisst du aber, oder? Und du bekommst ja auch den Ort geliefert, wo der Fehler auftritt. Ansonsten musst du deine umgeschriebene Klasse nochmal komplett hier reinposten. Aus den kleinen Codestücken kann man nicht viel erkennen.
 

wusli

Aktives Mitglied
Hier nochmal der ganze Code..

Java:
package Hangman;





import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.KeyListener;

import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.Desktop;
import java.awt.event.*;
 

public class Hangman extends JFrame implements KeyListener   {


	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField buchstabe;
	private JTextField tf_ganz;
	private JPasswordField wort;

	 public void keyTyped(KeyEvent e) {}
	    
	    public void keyPressed(KeyEvent e) {
	    	if(e.getKeyCode() == e.VK_F1){
	    	try {
                 Runtime.getRuntime().exec(
                         new String[] {"hh",System.getProperty("user.dir")+ "/hilfe.chm" });
             } catch (Exception oError) {
                 // Hier Fehler abfangen
             }
	    }
	    }
	 
	    public void keyReleased(KeyEvent e) {}

	    
	       

	/**
	 * Launch the application.
	 */
	



	public static void main(String[] args) {
		

		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Hangman frame = new Hangman();
					frame.setVisible(true);
					

				} catch (Exception e) {
					e.printStackTrace();
				}
				
				
			}
		});
	}



	

	public Hangman()   {
		
		
		
		
		wort.addKeyListener(this);
		wort.requestFocus();

		setTitle("Hangman");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 408, 397);
		contentPane = new JPanel();
		contentPane.setBackground(Color.LIGHT_GRAY);
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);

		buchstabe = new JTextField();
		buchstabe.setBounds(207, 23, 86, 20);
		contentPane.add(buchstabe);
		buchstabe.setColumns(1);

		final JLabel imagelabel = new JLabel(new ImageIcon("0.gif"));
		imagelabel.setBackground(Color.LIGHT_GRAY);
		imagelabel.setBounds(10, 132, 204, 213);
		contentPane.add(imagelabel);

		final JTextArea nein = new JTextArea();
		nein.setToolTipText("Buchstaben die nicht vorkommen\r\n");
		nein.setBounds(224, 132, 166, 213);
		contentPane.add(nein);
		


		final JFrame frame = new JFrame();
		

		final StringBuilder gesuchtVerdeckt = new StringBuilder("____");
		final JTextArea ta = new JTextArea();
		ta.setBounds(10, 76, 378, 20);
		contentPane.add(ta);

		JButton pruefen = new JButton("Pr\u00FCfen");
		pruefen.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {
				String Buchstabe = buchstabe.getText();
				String Wort = wort.getText();
				String Zeichen = nein.getText();
				String word = ta.getText();
				int laenge = Zeichen.length();

				int index = Wort.indexOf(Buchstabe);

				if (index > -1) {
					gesuchtVerdeckt.replace(index, index + 1, Buchstabe);

				}

				else {
					nein.setText(nein.getText() + Buchstabe);

				}

				ta.setText(gesuchtVerdeckt.toString());
				buchstabe.setText("");

				switch (laenge) {
				case 0:
					ImageIcon icon0 = new ImageIcon("1.gif");
					imagelabel.setIcon(icon0);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 1:
					ImageIcon icon1 = new ImageIcon("2.gif");
					imagelabel.setIcon(icon1);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 2:
					ImageIcon icon2 = new ImageIcon("3.gif");
					imagelabel.setIcon(icon2);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 3:
					ImageIcon icon3 = new ImageIcon("4.gif");
					imagelabel.setIcon(icon3);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 4:
					ImageIcon icon4 = new ImageIcon("5.gif");
					imagelabel.setIcon(icon4);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 5:
					ImageIcon icon5 = new ImageIcon("6.gif");
					imagelabel.setIcon(icon5);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 6:
					ImageIcon icon6 = new ImageIcon("7.gif");
					imagelabel.setIcon(icon6);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 7:
					ImageIcon icon7 = new ImageIcon("8.gif");
					imagelabel.setIcon(icon7);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 8:
					ImageIcon icon8 = new ImageIcon("9.gif");
					imagelabel.setIcon(icon8);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					break;

				case 9:
					ImageIcon icon9 = new ImageIcon("10.gif");
					imagelabel.setIcon(icon9);
					imagelabel.setBounds(10, 95, 216, 250);
					contentPane.add(imagelabel);
					frame.pack();
					int ok = JOptionPane.showConfirmDialog(null,
							"Neues Spiel?", "Sie haben Verloren",
							JOptionPane.YES_NO_OPTION);
					if (ok == JOptionPane.YES_OPTION) {

						wort.setVisible(true);
						wort.setText("");
						buchstabe.setText("");
						ta.setText("");
						nein.setText("");
						JLabel imagelabel1 = new JLabel(new ImageIcon("0.gif"));
						imagelabel1.setBounds(10, 95, 216, 250);
						contentPane.add(imagelabel);
						frame.pack();

					} else {
						System.exit(0);
					}
					break;
				}

				if (word.equals(Wort)) {
					int ok = JOptionPane.showConfirmDialog(null,
							"Neues Spiel?", "Sie haben Gewonnen",
							JOptionPane.YES_NO_OPTION);
					if (ok == JOptionPane.YES_OPTION) {
						wort.setVisible(true);
						wort.setText("");
						buchstabe.setText("");
						ta.setText(" ");
						nein.setText("");
						JLabel imagelabel1 = new JLabel(new ImageIcon("0.gif"));
						imagelabel1.setBounds(10, 95, 216, 250);
						contentPane.add(imagelabel);

					} else {
						System.exit(0);
					}
				}

			}

		}

		);
		
	   
	   
		
		
		
		
		pruefen.setBounds(301, 22, 89, 23);
		contentPane.add(pruefen);

		JLabel lblNewLabel = new JLabel("Buchstaben die nicht vorkommen");
		lblNewLabel.setFont(new Font("Arial", Font.BOLD, 11));
		lblNewLabel.setBounds(207, 107, 183, 14);
		contentPane.add(lblNewLabel);

		JButton ganz = new JButton("Ganzes Wort");
		ganz.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				String Wort = wort.getText();
				String ganzwort = tf_ganz.getText();
				if (ganzwort.equals(Wort)) {
					ta.setText(ganzwort);
					int ok = JOptionPane.showConfirmDialog(null,
							"Neues Spiel?", "Sie haben Gewonnen",
							JOptionPane.YES_NO_OPTION);
					if (ok == JOptionPane.YES_OPTION) {
						wort.setVisible(true);
						wort.setText("");
						buchstabe.setText("");
						ta.setText("");
						nein.setText("");
						tf_ganz.setText("");
					} else {
						System.exit(0);
					}

				} else {
					int ok = JOptionPane.showConfirmDialog(null,
							"Neues Spiel?", "Sie haben Verloren",
							JOptionPane.YES_NO_OPTION);
					if (ok == JOptionPane.YES_OPTION) {

						wort.setVisible(true);
						wort.setText("");
						buchstabe.setText("");
						ta.setText("");
						nein.setText("");
						tf_ganz.setText("");
						frame.pack();

					} else {
						System.exit(0);
					}
				}
			}
		});
		
	
		
		ganz.setBounds(301, 44, 89, 23);
		contentPane.add(ganz);

		tf_ganz = new JTextField();
		tf_ganz.setBounds(207, 45, 86, 20);
		contentPane.add(tf_ganz);
		tf_ganz.setColumns(10);

		wort = new JPasswordField();
		wort.setBounds(10, 45, 86, 20);
		contentPane.add(wort);

		final JButton Hilfe = new JButton("Hilfe");
		Hilfe.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
				Desktop desktop = Desktop.getDesktop();

				try {
					Runtime.getRuntime().exec(
							new String[] {"hh",System.getProperty("user.dir")+ "/hilfe.chm" });
				} catch (Exception oError) {
					// Hier Fehler abfangen
				}
			}

			
		});
		Hilfe.setBounds(301, 0, 89, 23);
		contentPane.add(Hilfe);

	}
	 
	}
 
C

Camino

Gast
[JAVA=95]wort.addKeyListener(this);[/code]

Du musst natürlich wort vorher initialisieren, also das Textfeld vorher erzeugen. So greifst du drauf zu, ohne dass es schon exisitiert. Deshalb die NullPointerException.

Das passiert nämlich erst hier:
[JAVA=348]wort = new JPasswordField();[/code]
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor
Sollte eigentlich offensichtlich sein?
Die Variable "wort" ist nicht initialisiert. Sie ist zwar als JPasswordField deklariert aber nirgends wir ein JPasswordField Objekt erzeugt und der Variablen zugewiesen.
 
C

Camino

Gast
Setz mal die zum KeyListener zugehörigen Methoden
Java:
public void keyTyped(KeyEvent e) {}
public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {}
nicht oben in die Klasse mit rein, sondern unter den Konstrukturblock.
 
C

Camino

Gast
Hmmm, was der Konstruktor ist, solltest du aber wissen. Alles was in dem Block zwischen den geschweiften Klammern steht, das ist der Konstruktor
Java:
public Hangman()   {
...
...
}

Da wo du die Methoden des KeyListeners hingeschrieben hast, kommen die Deklarationen der Variablen der Klasse rein. Verschieb die Methoden mal hinter die schliessende geschweifte Klammer des Konstruktors.
 

wusli

Aktives Mitglied
Hmmm, was der Konstruktor ist, solltest du aber wissen. Alles was in dem Block zwischen den geschweiften Klammern steht, das ist der Konstruktor
Java Code: Quelltext in neuem Fenster öffnen

1
2
3
4



public Hangman() {
...
...
}


Da wo du die Methoden des KeyListeners hingeschrieben hast, kommen die Deklarationen der Variablen der Klasse rein. Verschieb die Methoden mal hinter die schliessende geschweifte Klammer des Konstruktors.

Ja, dass dachte ich mir auch, aber darin hat er Fehlermeldungen gespuckt, dann dachte ich das wäre falsch :D
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Juelin JavaFX Netbeans Aufruf Funktion aus Scenebuilder AWT, Swing, JavaFX & SWT 8
G JButton mit importFiles-Funktion auf JDrawPane AWT, Swing, JavaFX & SWT 5
L JavaFx Textformatierung mittels Datenbank und Funktion anpassen AWT, Swing, JavaFX & SWT 5
T Combobox mit Autocomplete-Funktion AWT, Swing, JavaFX & SWT 7
C Swing Aufruf der Funktion (die ein Dialog anzeigt) über Symbol anzeigen lassen AWT, Swing, JavaFX & SWT 4
L Button Funktion zuweisen in WindowBuilder AWT, Swing, JavaFX & SWT 22
A Button mit Speicher-Funktion AWT, Swing, JavaFX & SWT 8
F main-Funktion bei Swing AWT, Swing, JavaFX & SWT 4
kilopack15 Buttons ohne Funktion AWT, Swing, JavaFX & SWT 2
J Event Handling Frage zu der Funktion addActionListener AWT, Swing, JavaFX & SWT 2
D SWT Button mit F5-Funktion AWT, Swing, JavaFX & SWT 1
E ActionListener führt falsche Funktion aus AWT, Swing, JavaFX & SWT 6
C Swing JTextField Funktion zuweisen - Löschen von Buchstaben/Sonderzeichen AWT, Swing, JavaFX & SWT 6
K Funktion für das Bewegen des Balles AWT, Swing, JavaFX & SWT 5
A Trennung GUI und Funktion AWT, Swing, JavaFX & SWT 5
A Textfeld.append/.setText ohne Funktion AWT, Swing, JavaFX & SWT 2
F Swing JTextField in JList (Funktion beibehalten) AWT, Swing, JavaFX & SWT 2
U Disable-Funktion AWT, Swing, JavaFX & SWT 1
C Swing Durch Inhaltsänderung eines JTextfields eine Funktion aufrufen AWT, Swing, JavaFX & SWT 5
J Swing Nach SwingWorker Funktion aus der GUI Klasse aufrufen AWT, Swing, JavaFX & SWT 5
W Funktion per Tastendruck aufrufen. AWT, Swing, JavaFX & SWT 10
T ableitung übermalt die funktion AWT, Swing, JavaFX & SWT 3
N Swing Funktion repaint() updated nicht AWT, Swing, JavaFX & SWT 5
lumo SWT Image funktion auf ImageDaten AWT, Swing, JavaFX & SWT 9
R mathematische Funktion x^2 AWT, Swing, JavaFX & SWT 6
R mathemathische Funktion x^2 AWT, Swing, JavaFX & SWT 2
J Progressbar mit einfacher Funktion AWT, Swing, JavaFX & SWT 6
L Swing Funktion animieren AWT, Swing, JavaFX & SWT 10
O Variablen an anonyme Funktion AWT, Swing, JavaFX & SWT 10
D Funktion JList.getSelectedValues() gibt nicht alle values zurück AWT, Swing, JavaFX & SWT 2
G Swing Update-Funktion für Swing-Anwendung AWT, Swing, JavaFX & SWT 5
J Swing JDialog mit static-Funktion anzeigen -> Rückgabewert AWT, Swing, JavaFX & SWT 3
I JTextArea mit Copy Paste Funktion AWT, Swing, JavaFX & SWT 7
H Funktion ausführen wenn Button gedrückt wird. AWT, Swing, JavaFX & SWT 2
B Restart-Funktion für einen Updatemechanismus?????? AWT, Swing, JavaFX & SWT 4
G F6 Funktion AWT, Swing, JavaFX & SWT 2
S Swing Button mit Funktion abbilden AWT, Swing, JavaFX & SWT 3
P Funktion ist nicht MAC kompatibel, warum? AWT, Swing, JavaFX & SWT 12
S Funktion nur ausführen, wenn Maus über Componente ist AWT, Swing, JavaFX & SWT 2
A Sleep Funktion / Thread-Problem ! AWT, Swing, JavaFX & SWT 11
GilbertGrape bei "Enter" Funktion ausführen, egal wo der Fokus AWT, Swing, JavaFX & SWT 2
F Jframe Exit Funktion überladen AWT, Swing, JavaFX & SWT 3
G kreis malen -> welche funktion? AWT, Swing, JavaFX & SWT 3
D SWT: Funktion zum Auslesen der Schriftgröße AWT, Swing, JavaFX & SWT 2
D GroupLayout an un plötzlich is CardLayout Funktion tot? AWT, Swing, JavaFX & SWT 10
R Editor mit "Gehe zu"-Funktion AWT, Swing, JavaFX & SWT 4
W Unterdrückung von FrameIcon-Funktion im JInternalFrame AWT, Swing, JavaFX & SWT 5
G Funktion für PopUp Menü AWT, Swing, JavaFX & SWT 32
F ZOOM Funktion in JTextPane AWT, Swing, JavaFX & SWT 6
D paint-Funktion wird nicht ausgeführt AWT, Swing, JavaFX & SWT 6
A Drag and Drop Funktion mit JLabel AWT, Swing, JavaFX & SWT 5
E Beim Schließen des Fensters eigene Funktion aufrufen AWT, Swing, JavaFX & SWT 8
L JOP.showInputDialog: Abbrechen Button-Funktion beenden AWT, Swing, JavaFX & SWT 5
D setPreferredSize(), setMaximumSize() ohne Funktion? AWT, Swing, JavaFX & SWT 4
S JComboBox -> undo Funktion hinzufügen! AWT, Swing, JavaFX & SWT 2
Z Welche Funktion von JTextArea muß ich überschreiben? AWT, Swing, JavaFX & SWT 4
R TAB-Funktion in Fenster ändern - genauer: STRG+TAB AWT, Swing, JavaFX & SWT 5
P Rückgängig-Funktion im Malprogramm AWT, Swing, JavaFX & SWT 3
MiMa Optimieren einer Methode zum Zentrieren von Fenstern AWT, Swing, JavaFX & SWT 0
T VerifyListener - Ersetzen einer 0 AWT, Swing, JavaFX & SWT 5
I JavaFX JavaFx-Anwendung für die Erstellung einer Windows-Anwendung? AWT, Swing, JavaFX & SWT 6
J Drag und drop aus einer JTable - bitte um Unterstützung AWT, Swing, JavaFX & SWT 2
N Dropshadow setzen bei einer Gruppe von Tiles, die sich jeweils in einer Stackpane befinden, welche in einer Gridpane angeordnet sind. AWT, Swing, JavaFX & SWT 0
M Daten zufällig Einlesen aus einer Datei (binäres Format) AWT, Swing, JavaFX & SWT 7
ExceptionOfExpectation Mit einer laufenden GUI Applikation eine Datei in dem Rechner löschen AWT, Swing, JavaFX & SWT 2
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
Linjutsu Den Inhalten aus einer ArrayList Bilder zuweisen (Kartenspiel) AWT, Swing, JavaFX & SWT 8
H JavaFX Timeline II: Verschieben einer ImageView AWT, Swing, JavaFX & SWT 16
I Hilfe bei dem Erstellen einer SQL Abfrage aus gewählten JComboBoxen AWT, Swing, JavaFX & SWT 5
L Swing TextPanel Schrift untereinander und auf einer Höhe AWT, Swing, JavaFX & SWT 3
mananana Mögliche probleme die in einer GUI passieren Können AWT, Swing, JavaFX & SWT 6
I JTable mit einem Button zu einer Detail Seite springen AWT, Swing, JavaFX & SWT 4
Ernesto95 JavaFX Return Value nach Beendigung einer Animation AWT, Swing, JavaFX & SWT 15
melaniemueller Wortliste in einer Datei ablegen AWT, Swing, JavaFX & SWT 12
D Layout einer scene mit ListView Elementen und Zwei Textfeldern AWT, Swing, JavaFX & SWT 1
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
U Was genau ist das Objekt einer affinentransformation? AWT, Swing, JavaFX & SWT 1
B JavaFX Prüfen ob ein Objekt sich mehrmals in einer Liste befindet AWT, Swing, JavaFX & SWT 5
mac2010 JavaFX Einbindung einer Karte AWT, Swing, JavaFX & SWT 1
donnico2 Objekte in der GUI ausgeben mit Hilfe einer DAO AWT, Swing, JavaFX & SWT 1
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
W Aufrufen einer bestimmten Scene mit if-Bedingung AWT, Swing, JavaFX & SWT 4
J Ablaufsteuerung/Anleitung machen mit JDialog und einer Zustandsmaschine AWT, Swing, JavaFX & SWT 1
missy72 JavaFX Wiederholen einer IF-Abfrage beim erneuten Öffnen einer Stage AWT, Swing, JavaFX & SWT 11
missy72 JavaFX TableView / TableColumn / ObservableList / zwei Werte in einer Zelle AWT, Swing, JavaFX & SWT 2
S JavaFX - mit Listener Veränderungen in einer TableView abhören AWT, Swing, JavaFX & SWT 3
missy72 JavaFX ObservableList in einer ArrayList speichern. AWT, Swing, JavaFX & SWT 7
HoT Sortieren von ein paar Zeilen in einer Tabelle, aber nicht die ganze Tabelle AWT, Swing, JavaFX & SWT 3
kodela Swing Element einer JComboBox ausgrauen AWT, Swing, JavaFX & SWT 3
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
H Daten aus einer XML(x83-Datei) in einem JFrame anzeigen lassen AWT, Swing, JavaFX & SWT 9
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
N Einer TextArea ein ScrollPane hinzufügen AWT, Swing, JavaFX & SWT 8
L JavaFX Exception nach includieren einer fxml // nested controller AWT, Swing, JavaFX & SWT 1
K Probleme bei der Erstellung und Ausführung einer Jar Datei AWT, Swing, JavaFX & SWT 2
A checkbox in einer TableView abhängig von einem anderen Celleninhalt disablen AWT, Swing, JavaFX & SWT 1
G Verknüpfung einer pdf Datei AWT, Swing, JavaFX & SWT 2
B Ausgaben einer Umrechnung vom Textfeld in ein Label AWT, Swing, JavaFX & SWT 2
F jTree und das Model aus einer eigenen Klasse AWT, Swing, JavaFX & SWT 1
D Zeilenumbruch in einer JTable AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben