Klasse öffnen, mehrere Exceptions

E

Eleandro

Gast
Hi Leute,

Ich versuche krampfhaft, ein Fenster in meiner Main-Klasse zu öffnen. D.h., ich habe eine Klasse "Profiloptionen", wo ein eigenes Fenster beschrieben ist und in Mühle.java, wo ich auch meine Main habe, will ich via ActionListener dieses Fenster aufrufen und starten. Doch ständig werde ich mit folgenden Fehlern geärgert:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at gui.Muehle$12.actionPerformed(Muehle.java:380) (--> das ist genau die Stelle, an der "Profiloptionen" gestartet werden soll)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1225)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1266)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

Das Hauptfenster (ein Mühlespielbrett, oben mit MenuItems, wo auch "Profiloptionen" geöffnet werden soll) startet erst ohne Probleme. Doch sobald ich auf den Menüeintrag "Profiloptionen" klicke, öffnet sich nicht mein neues Fenster, sondern meine Frustration vergrößert sich jedes Mal ein Stück mehr.

Der Meüeintrag:
Java:
menu = new JMenu("Profile");
        menuItem = new JMenuItem("Profiloptionen");
        menuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ev) {
                profiloptionen.setVisible(true);
            }
        });
        menu.add(menuItem);

Ich vermute mal, ihr braucht auch den Quelltext von Profiloptionen, der ist halt etwas länger...
Java:
package gui;



import java.awt.Color;
import engine.Datenbank;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;
import javax.swing.Box;
import javax.swing.DefaultComboBoxModel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JButton;
import model.Profil;
import model.Profilspeicher;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Stellt die Profileinstellungen dar
 * @author Andi
 */


public class Profiloptionen extends JDialog implements ActionListener, ProfilListener {


    //Instanzvariablen
    JButton abbrechen = new JButton("Abbrechen");
    JButton neuesSpiel = new JButton("Neues Spiel starten");
    Profilspeicher ps;
    JComboBox spieler1;
    JComboBox spieler2;
    Muehle muehle;

    //Instanzvariablen für Profil erstellen
    JTextField textField = new JTextField(12);
    JButton profilAnlegen = new JButton("Profil anlegen");
    Highscore highscore;

    //Instanzvariablen für Profil löschen
    JComboBox profile;
    JButton profilLöschen = new JButton("Profil löschen");



    // Konstruktor    (aus Klammer wurde entfernt Datenbank)
    public Profiloptionen(  Muehle muehle, Highscore highscore) {

        super(muehle, true);
        this.muehle = muehle;

        //Profilspeicher als Instanzvaraible anlegen
//        this.ps = ps;

        this.highscore = highscore;

        // als Listener anmelden
        ps.addProfilListener(this);



        // Layout festlegen
        super.setTitle("Profiloptionen");
        getContentPane().setBackground(Color.LIGHT_GRAY);
        setDefaultCloseOperation(HIDE_ON_CLOSE);
        super.setLayout( new GridBagLayout());
        GridBagConstraints c = new GridBagConstraints();

       
        // Fenster in Mitte positionieren
        Dimension fenstergröße =  new Dimension( 500, 400);  // Fenstergröße laut pack() ermittelt
        Dimension bildschirmgröße = Toolkit.getDefaultToolkit().getScreenSize();  // ermittlet Bildschirmgröße
        int y = (int) (bildschirmgröße.getHeight() - fenstergröße.getHeight()) / 2;    // y-Koordinate des Fenstes
        int x = (int) (bildschirmgröße.getWidth() - fenstergröße.getWidth()) / 2;   // x-Koordinate des Fenstes
        setSize(fenstergröße);   // Fenstergröße zuweisen
        setLocation( x, y);      // Positionierung des Fensters


        //Label einfügen: Spieler auswählen, Zeile 0
        c.gridx = 0;
        c.gridy = 0;
        c.gridheight = 1;
        c.gridwidth = 1;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(10,5,0,0);
        JLabel labelSpielerauswählen = new JLabel("Spieler auswählen:");
        labelSpielerauswählen.setFont(new Font("Arial", Font.BOLD, 14));
        add(labelSpielerauswählen, c);


        //Label einfügen für Spieler 1, Zeile 1
        c.gridx = 0;
        c.gridy = 1;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.REMAINDER; // davor wars hier 1
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(10,5,0,0);
        JLabel labelSpieler1 = new JLabel("Spieler Schwarz:");
        labelSpieler1.setFont(new Font("Arial", Font.BOLD,  14));
        add(labelSpieler1, c);

        //ImageIcon einfügen (Schwarzer Stein), Zeile 1
        c.gridx = 1;
        c.gridy = 1;
        c.gridheight = 1;
        c.gridwidth = 1;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(10,10,0,0);
        ImageIcon weißerStein = new ImageIcon("gui\\spielerSchwarz.gif");
        JLabel stein1 = new JLabel(weißerStein);
        add(stein1, c);

         //ComboBox einfügen, Zeile 1
        c.gridx = 2;
        c.gridy = 1;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.REMAINDER;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(10,15,0,0);
//        spieler1 = new JComboBox( new DefaultComboBoxModel( muehle.getDatenbank().execute("SELECT name FROM statistik") ));
        add(spieler1, c);


        //Label einfügen für Spieler 2, Zeile 2
        c.gridx = 0;
        c.gridy = 2;
        c.gridheight = 1;
        c.gridwidth = 1;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(15,5,0,0);
        JLabel labelSpieler2 = new JLabel("Spieler Weiß:");
        labelSpieler2.setFont(new Font("Arial", Font.BOLD, 14));
        add(labelSpieler2, c);

        //ImageIcon einfügen (Weißer Stein), Zeile 2
        c.gridx = 1;
        c.gridy = 2;
        c.gridheight = 1;
        c.gridwidth = 1;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(5,10,0,0);
        ImageIcon schwarzerStein = new ImageIcon("src\\gui\\spielerWeiß.gif");
        JLabel stein2 = new JLabel(schwarzerStein);
        add(stein2, c);

         //ComboBox einfügen, Zeile 2
        c.gridx = 2;
        c.gridy = 2;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.REMAINDER;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(5,15,0,0);
//        spieler2 = new JComboBox( new DefaultComboBoxModel((Vector) ps.getProfilnamen()));
        add(spieler2, c);

         //Label für  Profilerstellen, Zeile 3
        c.gridx = 0;
        c.gridy = 3;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.WEST;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(30,5,0,0);
        JLabel profilErstellen = new JLabel("Profil erstellen:");
        profilErstellen.setFont(new Font("Arial", Font.BOLD, 14));
        add(profilErstellen, c);
        
        //Label für Funktion Profilerstellen, Zeile 4
        c.gridx = 0;
        c.gridy = 4;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.WEST;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(10,5,0,0);
        JLabel profilname = new JLabel("Profilname:");
        profilname.setFont(new Font("Arial", Font.BOLD, 14));
        add(profilname, c);


        //Textfield für die Eingabe des neuen Spielernamens, Zeile 4
        c.gridx = 1;
        c.gridy = 4;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.WEST;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(10,5,0,0);
        add(textField, c);

        //Button zum Speichern des neuen Profils, Zeile 4
        c.gridx = 2;
        c.gridy = 4;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.CENTER;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(10,80,0,0);
        add(profilAnlegen, c);

        // Label für Spieler löschen, Zeile 5
        c.gridx = 0;
        c.gridy = 5;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.WEST;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(30,5,0,0);
        JLabel profilLoeschen = new JLabel("Profil löschen:");
        profilLoeschen.setFont(new Font("Arial", Font.BOLD, 14));
        add(profilLoeschen, c);

        // Label Spielerwählen (für Spieler löschen), Zeile 6
        c.gridx = 0;
        c.gridy = 6;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.WEST;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(10,5,0,0);
        JLabel profilName1 = new JLabel("Profil wählen:");
        profilName1.setFont(new Font("Arial", Font.BOLD, 14));
        add(profilName1, c);

        //JComboBox um Spieler auszuwählen, Zeile 6
        c.gridx = 1;
        c.gridy = 6;
        c.gridheight = 1;
        c.gridwidth = 1;
        c.weightx = 0;
        c.weighty = 0;
        c.fill = GridBagConstraints.HORIZONTAL;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(10,5,0,0);
//        profile = new JComboBox (new DefaultComboBoxModel( (Vector) ps.getProfilnamen()));
        add(profile, c);


        //Button um Spieler zu löschen, Zeile 6
        c.gridx = 2;
        c.gridy = 6;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.CENTER;
        c.weightx = 0;
        c.weighty = 0;
        c.fill = GridBagConstraints.NONE;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(10,80,0,0);
        
        add(profilLöschen, c);
        
        
        //2 Buttons einfügen, Zeile 7
        c.gridx = 0;
        c.gridy = 7;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.REMAINDER;
        c.weightx = 0;
        c.weighty = 0;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(15,0,10,0);
        JPanel panel = new JPanel();
        panel.setOpaque(false);
        panel.setLayout( new FlowLayout(FlowLayout.LEFT));
        add(panel, c);

        //Listener für Neues Spiel
       neuesSpiel.addActionListener(new ActionListener (){
            public void actionPerformed (ActionEvent e){

                    muehle.neuesSpielAnlegen();  //muehle.neues....?        --> hier der Fehler: local variable muehle is accessed from within inner class; needs to be declared final
                    setVisible(false); //Fenster schließen
                    // neues Spiel beginnen
             }

        });
        panel.add(neuesSpiel);
        panel.add( Box.createHorizontalGlue());

        //Listener für Abbrechen-Button
        abbrechen.addActionListener(new ActionListener (){
            public void actionPerformed (ActionEvent e){
                setVisible(false);
            }
        });
        panel.add(abbrechen);
        panel.add( Box.createHorizontalGlue());



        //Listener für die Buttons
        neuesSpiel.addActionListener(this);
        abbrechen.addActionListener(this);
        profilAnlegen.addActionListener( this);
        profilLöschen.addActionListener(this);
        }

    
    public boolean überprüfeProfile() {
        if( spieler1.getSelectedItem() == spieler2.getSelectedItem()) {
            return true;
        }
        else return false;
    }


    //ActionListener für Neues Spiel
   public void actionPerformed(ActionEvent e) {
        JButton button = (JButton) e.getSource();
        if(  button == neuesSpiel) {
                muehle.neuesSpielAnlegen();
                this.setVisible(false); //Fenster schließen
                // neues Spiel beginnen
            } 

       
        //ActionListener um das Profil anzulegen  
         else  if (button == profilAnlegen) {
            String name = textField.getText();
                boolean b = ps.gleichheitÜberpfüfen(name);
                if (!(b)) {
                    if (textField.getText().length() <= 15) {
                        try {
                            ps.profilAnlegen(name);  // neues Profil anlegen
                            JOptionPane.showMessageDialog(Profiloptionen.this, "Profil wurde angelegt", "Information", JOptionPane.INFORMATION_MESSAGE);
                            textField.setText("");
                            textField.requestFocus();
                        } catch (Exception ex) {
                            // nothing
                        }
                    } else {
                        JOptionPane.showMessageDialog(null, "Profilname ist zu lang", "Information", JOptionPane.INFORMATION_MESSAGE);
                    }
                } else {
                    JOptionPane.showMessageDialog(null, "Profilname ist schon vergeben", "Information", JOptionPane.INFORMATION_MESSAGE);
                    textField.requestFocus();
                }

        } 

         //ActionListener um ein Profil zu löschen
         else if ( button == profilLöschen) {
            int result = JOptionPane.showConfirmDialog(Profiloptionen.this, "Sind Sie sicher?", "Bestätigung", JOptionPane.YES_NO_OPTION);
            if (result == JOptionPane.YES_OPTION) {
//                ps.profilLöschen( (String) profile.getSelectedItem());
                JOptionPane.showMessageDialog(Profiloptionen.this, "Profil wurde gelöscht", "Bestätigung", JOptionPane.INFORMATION_MESSAGE);
            }
        }
        else {
            this.setVisible(false);   // Fenster schließen
        }
    };

    //ActionListener für den Abbrechen-Button
    public void actionPerformed3(ActionEvent eev) {
        JButton button = (JButton) eev.getSource();
        if (button ==  abbrechen) {
            this.setVisible(false);
        }
    }



    // implementierte Methode des Interface
    public void profilHinzufügen(String profilname) {
        spieler1.setModel( new DefaultComboBoxModel( (Vector) ps.getProfilnamen()));
        spieler2.setModel( new DefaultComboBoxModel( (Vector) ps.getProfilnamen()));
    }

    public void profilLöschen( String profilname) {
        spieler1.setModel( new DefaultComboBoxModel( (Vector) ps.getProfilnamen()));
        spieler2.setModel( new DefaultComboBoxModel( (Vector) ps.getProfilnamen()));
    }


    public JButton getAbbrechen() {
        return abbrechen;
    }

    public void setAbbrechen(JButton abbrechen) {
        this.abbrechen = abbrechen;
    }


    public JButton getNeuesSpiel() {
        return neuesSpiel;
    }

    public void setNeuesSpiel(JButton neuesSpiel) {
        this.neuesSpiel = neuesSpiel;
    }

    public Profilspeicher getPs() {
        return ps;
    }

    public void setPs(Profilspeicher ps) {
        this.ps = ps;
    }

    public JComboBox getSpieler1() {
        return spieler1;
    }

    public void setSpieler1(JComboBox spieler1) {
        this.spieler1 = spieler1;
    }

    public JComboBox getSpieler2() {
        return spieler2;
    }

    public void setSpieler2(JComboBox spieler2) {
        this.spieler2 = spieler2;
    }

}

Weiter oben gibts auch noch ein kleies Problem mit ner lokalen Variable und inner class. Oh je, das Ding macht mich fertig! Könnt ihr mir helfen?? Bitte....
 
G

Gast2

Gast
Ich würde mal vermuten [c]profiloptionen.setVisible(true);[/c] ist das Problem da es null ist. Hast du irgendwo soetwas wie [c]Profileoptionen profileoptionen = new Profileoptionen()[/c] in deinem Code?

Der Quellcode von Profiloptionen ist da der falsche Codeausschnitt. Da müsstest du eher den Quellcode von deiner anderen GUI Klasse posten.

Zu dem inner class problem - dazu musst du dann [c]profiloptionen[/c] als final deklarieren. Du kannst aber auch einfach im ActionListener immer ein neues Profiloptionen Fenster anlegen.

Java:
        menuItem.addActionListener(new ActionListener() {
 
            public void actionPerformed(ActionEvent ev) {
                Profiloptionen profiloptionen = new Profiloptionen(); // immer ein neuse Fenster anlegen...
                profiloptionen.setVisible(true);
            }
        });
 
Zuletzt bearbeitet von einem Moderator:
G

gman

Gast
Hi,

wurde die Variable "profiloptionen" denn schon in dem ersten Code-Abschnitt belegt? Wenn hinter der Variable
kein Objekt steckt dann fliegt natürlich eine NPE wenn du eine Methode aufrufen willst.

Edit: Mist zu langsam ;)
 
E

Eleandro

Gast
Hey,

Ja, hatte ich schon mal drin, lief aber trotzdem nicht wirklich.

Folgendes steht nun in

public class Muehle extends JFrame{

//hier werden versch. Datenfelder angegeben, u.a. auch:
Profiloptionen profiloptionen;

public Muehle() {
super("Mühle");
etc....

profiloptionen = new Profiloptionen(); --> nun folgender Fehler: cannot find Symbol ?? oben stehts doch da?

komplette Fehlermeldung, die links als rotes Ausrufezeichen erscheint (NetBeans):
cannot find symbol
symbol: constructor Profiloptionen()
location: class.gui.Profiloptionen
 
E

Eleandro

Gast
Hui, ihr seid ja richtig schnell :) :O

Hab noch gar nicht bemerkt, dass editiert wurde und noch ein Beitrag gekommen ist. Ich versuchs mal eure Tipps umzusetzen.

Ist ja der Hammer, wie schnell das Forum ist :)
 
E

Eleandro

Gast
HI,

scheint noch nicht zu klappen, er findet immer noch kein Symbol. Ich habe euch deshalb wie vorgeschlagen den kompletten Code von Muehle () reinkopiert:

In Z.65 wird das Datenfeld angelegt für Profiloptionen.
in Z.107 wollte ich das Fenster erst anlegen, aber sobald ich das wieder auskommentiere, findet er kein Symbol.
in Z.383 ist der ActionListener und der versuchte Aufruf, aber auch wird kein Symbol gefunden; new Profiloptionen() ist rot unterlegt.

Java:
package gui;

import engine.Datenbank;
import engine.Feld;
import engine.NeuesSpiel;
import gui.Highscore.Resultat;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import model.Profilspeicher;
import model.Spieler;
import java.io.File;
import java.applet.*;
import java.awt.event.*;
import java.awt.*;
//import javax.media.*;

/**
 *
 * @author Andi
 */
public class Muehle extends JFrame{

    // Datenfelder
    JLabel spielerSchwarzLabel;
    JLabel spielerWeissLabel;
    JLabel meldung;
    Spielbrett spielbrett;
    Spielsteine schwarzeSteine;   // linke Seite vom Spielfeld
    Spielsteine weisseSteine;  // rechte Steite vom Spielfeld
    Info info;
    Highscore highscore;
    ProfileZuordnen profileZuordnen;
    ProfilLöschen profilLöschen;
    ProfilErstellen profilErstellen;
    Profilspeicher ps;
    NeuesSpiel neuesSpiel;
    String pfad;
    Datenbank datenbank;
    
    Profiloptionen profiloptionen;
    //String AudioPfad = "C:\\Games\\tes4title.mp3";
    //File datei = new File(AudioPfad);
   
        
    

    // Konstruktor
    public Muehle() {

        super("Mühle");
        super.setResizable(false);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        fenstergrösseFestlegen();
        menueleisteEinbauen();
        //AudioClip = backgroundSound;
        //backgroundSound = getAudioClip(getCodeBase(),"C:/Games/tes4title.mp3");


        // dieses Fenster als WindowListener anmelden, um Profile speichern zu können
        this.addWindowListener(new WindowAdapter() {

            public void windowClosing(WindowEvent ev) {
                highscore.speichereProfildaten();
                ps.speichereProfilnamen();
                if (neuesSpiel != null) {
                    int result = JOptionPane.showConfirmDialog(Muehle.this, "Wollen Sie die aktuelle Partie speichern?", "Warnung", JOptionPane.YES_NO_OPTION);
                    if (result == JOptionPane.YES_OPTION) {
                        speicherePartie(0);
                    }
                }
            }
        });


        // Fenster-Objekte anlegen
        ps = new Profilspeicher(this, highscore);
        profilErstellen = new ProfilErstellen(ps, this, highscore);
        profilLöschen = new ProfilLöschen(ps, this);
        profileZuordnen = new ProfileZuordnen(ps, this);
        highscore = new Highscore(ps);
        info = new Info();
//        profiloptionen = new Profiloptionen();
        
        






        //Layout festlegen
        this.setLayout(new BorderLayout());
        this.setBackground(Color.LIGHT_GRAY);


        // NORTH-PANEL
        JPanel northPanel = new JPanel();
        northPanel.setBackground(Color.LIGHT_GRAY);
        add(northPanel, BorderLayout.NORTH);

        northPanel.setLayout(new GridBagLayout());
        GridBagConstraints c = new GridBagConstraints();

        // Label für Spieler1
        c.gridx = 0;
        c.gridy = 0;
        c.gridheight = 1;
        c.gridwidth = 1;
        c.weightx = 1;
        c.weighty = 1;
        c.anchor = GridBagConstraints.WEST;
        c.insets = new Insets(10, 10, 10, 10);
        spielerSchwarzLabel = new JLabel("Spieler 1", JLabel.CENTER);
        spielerSchwarzLabel.setFont(new Font("Arial", Font.BOLD, 16));
        spielerSchwarzLabel.setPreferredSize(new Dimension(130, 30));
        spielerSchwarzLabel.setBorder(BorderFactory.createRaisedBevelBorder());
        spielerSchwarzLabel.setOpaque(true);
        spielerSchwarzLabel.setBackground(Color.LIGHT_GRAY);
        northPanel.add(spielerSchwarzLabel, c);


        // Label Meldung
        c.gridx = 1;
        c.gridy = 0;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.RELATIVE;
        c.weightx = 1;
        c.weighty = 1;
        c.anchor = GridBagConstraints.CENTER;
        c.insets = new Insets(10, 10, 10, 10);
        meldung = new JLabel("");
        meldung.setFont(new Font("Arial", Font.BOLD, 16));
        meldung.setBackground(Color.LIGHT_GRAY);
        northPanel.add(meldung, c);


        // Label für Spieler2
        c.gridx = 2;
        c.gridy = 0;
        c.gridheight = 1;
        c.gridwidth = GridBagConstraints.REMAINDER;
        c.weightx = 1;
        c.weighty = 1;
        c.anchor = GridBagConstraints.EAST;
        c.insets = new Insets(10, 10, 10, 10);
        spielerWeissLabel = new JLabel("Spieler 2", JLabel.CENTER);
        spielerWeissLabel.setFont(new Font("Arial", Font.BOLD, 16));
        spielerWeissLabel.setPreferredSize(new Dimension(130, 30));
        spielerWeissLabel.setBorder(BorderFactory.createRaisedBevelBorder());
        spielerWeissLabel.setOpaque(true);
        spielerWeissLabel.setBackground(Color.LIGHT_GRAY);
        northPanel.add(spielerWeissLabel, c);


        // WEST-PANEL
        JPanel westPanel = new JPanel();
        westPanel.setBackground(Color.LIGHT_GRAY);
        westPanel.setPreferredSize(new Dimension(75, 500));
        schwarzeSteine = new Spielsteine(Color.BLACK, 17, 40);
        schwarzeSteine.setPreferredSize(new Dimension(75, 500));
        westPanel.add(schwarzeSteine);
        add(westPanel, BorderLayout.WEST);



        // EAST-PANEL
        JPanel eastPanel = new JPanel();
        eastPanel.setBackground(Color.LIGHT_GRAY);
        eastPanel.setPreferredSize(new Dimension(75, 500));
        weisseSteine = new Spielsteine(Color.WHITE, 17, 40);
        weisseSteine.setPreferredSize(new Dimension(75, 500));
        eastPanel.add(weisseSteine);
        add(eastPanel, BorderLayout.EAST);



        // SOUTH-PANEL
        JPanel southPanel = new JPanel();

//        JButton buttonMusikAn = new JButton("Sound an");
//        buttonMusikAn.addActionListener(new ActionListener() {
//            public void actionPerformed(ActionEvent ev) {
//                String cmd = ev.getActionCommand();
//                if (cmd.equals("Sound an")){
//                   //backgroundSound.play();
//                }
//                else{
//                }

                //Player audioPlayer = Manager.createRealizedPlayer(file.toURL());
                //audioPlayer.start();
//            }
//        });

        JButton buttonNeuesSpiel = new JButton("Neues Spiel");
        buttonNeuesSpiel.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ev) {
                neuesSpielAnlegen();
            }
        });


        JButton buttonSpielregeln = new JButton("Spielzug rückgängig");
        buttonSpielregeln.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ev) {
                if(neuesSpiel.isInteraktion() == true  &  neuesSpiel != null){
                    ladePartie(1);
                }
            }
        });


        JButton buttonBeenden = new JButton("Unentschieden");
        buttonBeenden.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ev) {
                unentschieden(); // keiner gewinnt;
            }
        });


        JButton buttonMusikAn = new JButton("Sound an");
        buttonMusikAn.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ev) {
                try{
                   new ProcessBuilder( "cmd", "/c", "src\\gui\\Jump.mp3" ).start();

               }catch (Exception exp){};
//                String cmd = ev.getActionCommand();
//                if (cmd.equals("Sound aus")){
//                   //backgroundSound.stop();
//                }
//                else{
//                }
                //Player audioPlayer = Manager.createRealizedPlayer(file.toURL());
               //audioPlayer.stop();
            }
        });



        southPanel.setBackground(Color.LIGHT_GRAY);
//        southPanel.add(buttonMusikAn);
        southPanel.add(buttonNeuesSpiel);
        southPanel.add(buttonSpielregeln);
        southPanel.add(buttonBeenden);
        southPanel.add(buttonMusikAn);

        add(southPanel, BorderLayout.SOUTH);



        //CENTER-COMPONENT
        spielbrett = new Spielbrett();
        spielbrett.setPreferredSize(new Dimension(450, 450));
//        spielbrett.addMouseListener(neuesSpiel);  // SteinePlatzierer informieren nach Mausklick
        add(spielbrett, BorderLayout.CENTER);



    }

    public void fenstergrösseFestlegen() {
        Dimension fenstergröße = new Dimension(606, 587);  // Fenstergröße unseres Programms
        Dimension bildschirmgröße = Toolkit.getDefaultToolkit().getScreenSize();  // ermittlet Bildschirmgröße
        int y = (int) (bildschirmgröße.getHeight() - fenstergröße.getHeight()) / 2;    // y-Koordinate des Fenstes
        int x = (int) (bildschirmgröße.getWidth() - fenstergröße.getWidth()) / 2;   // x-Koordinate des Fenstes
        setSize(fenstergröße);   // Fenstergröße zuweisen
        setLocation(x, y);      // Positionierung des Fensters
    }

    // MENÜLEISTE - steuert die Menüleiste und öffnet und schließt Fenster
    public void menueleisteEinbauen() {

        JMenuBar menuBar = new JMenuBar();
        JMenuItem menuItem;

        //-----------------------------------------------------------------

        JMenu menu = new JMenu("Programm");


        menuItem = new JMenuItem("Neues Spiel");
        menuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ev) {
                neuesSpielAnlegen();
            }
        });
        menu.add(menuItem);



        menuItem = new JMenuItem("Beenden");
        menuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ev) {
                highscore.speichereProfildaten();
                ps.speichereProfilnamen();
                System.exit(0);
            }
        });
        menu.add(menuItem);


        menuBar.add(menu);

        //-------------------------------------------------------------------

        menu = new JMenu("Spiel");
        menuItem = new JMenuItem("Spielzug rückgängig");
        menuItem.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent ev) {
                if(neuesSpiel.isInteraktion() == true & neuesSpiel != null){
                    ladePartie(1);
                }
            }
        });
        menu.add(menuItem);

        menuItem = new JMenuItem("Partie unentschieden");
        menuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ev) {
                unentschieden();
            }
        });
        menu.add(menuItem);

        menuItem = new JMenuItem("Partie speichern");
        menuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ev) {
                speicherePartie(0);
            }
        });
        menu.add(menuItem);


        menuItem = new JMenuItem("Partie laden");
        menuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ev) {
                ladePartie(0);
            }
        });
        menu.add(menuItem);

        menuBar.add(menu);

        //-----------------------------------------------------------------

        menu = new JMenu("Profile");
        menuItem = new JMenuItem("Profiloptionen");
        menuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ev) {
                
                Profiloptionen profiloptionen = new Profiloptionen();
                profiloptionen.setVisible(true);
            }
        });
        menu.add(menuItem);

        
        //alte Fenster, deren Funktiontionen alle in Profiloptionen verfügbar sein sollen
//        menuItem = new JMenuItem("Profil erstellen");
//        menuItem.addActionListener(new ActionListener() {
//
//            public void actionPerformed(ActionEvent ev) {
//                profilErstellen.setVisible(true);
//            }
//        });
//        menu.add(menuItem);
//
//        menuItem = new JMenuItem("Profil löschen");
//        menuItem.addActionListener(new ActionListener() {
//
//            public void actionPerformed(ActionEvent ev) {
//                profilLöschen.setVisible(true);
//            }
//        });
        menu.add(menuItem);
        menuBar.add(menu);

        menuItem = new JMenuItem("Profildatenbank");
        menuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ev) {
                new LibraryGUI().setVisible( true);
            }
        });
        menu.add(menuItem);
        menuBar.add(menu);
        //-----------------------------------------------------------------


        menu = new JMenu("Fenster");
        menuItem = new JMenuItem("Statistik");
        menuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ev) {
                highscore.setVisible(true);
            }
        });
        menu.add(menuItem);

        menuItem = new JMenuItem("Spielregeln");
        menuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ev) {
                //regeln.setVisible(true);
                
               try{
                   new ProcessBuilder( "cmd", "/c", "src\\gui\\Mühle Spielregeln.pdf" ).start();

               }catch (Exception exp){};


         //       try {
	//		Runtime.getRuntime().exec("cmd.exe /c C:\\Users\\Daniel Autenrieth\\Desktop\\FH Dateien\\Programmieren\\Projekt\\Mühle_Test\\Mühle_Test\\src\\gui\\muehle_regeln.pdf");
	//	} catch (IOException e) {
			// TODO Auto-generated catch block
	//		e.printStackTrace();
	//	}
                }
        });
        menu.add(menuItem);

        menuItem = new JMenuItem("Programminfo");
        menuItem.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent ev) {
                info.setVisible(true);
            }
        });
        menu.add(menuItem);

        menuBar.add(menu);


        //-----------------------------------------------------------------


        setJMenuBar(menuBar);  // Menüleise einfügen
    }

    // erneuert die komplette Oberfläche, wenn ein neues Spiel begonnen wird
    public void oberflächeErneuern() {
        spielerSchwarzLabel.setText((String) profileZuordnen.getSpieler1().getSelectedItem());
        spielerWeissLabel.setText((String) profileZuordnen.getSpieler2().getSelectedItem());
        spielerSchwarzLabel.setBackground(Color.GREEN); // Spieler 1 soll beginnen (=grün)
        spielerWeissLabel.setBackground(Color.LIGHT_GRAY);  // Spieler 2 muss warten

        spielbrett.setMarkierung(null);
        spielbrett.entferneAlleSteine();
        spielbrett.repaint();

        schwarzeSteine.steineAuffüllen(Color.BLACK, 17, 40);
        schwarzeSteine.repaint();
        weisseSteine.steineAuffüllen(Color.WHITE, 17, 40);
        weisseSteine.repaint();

        meldung.setText("Stein platzieren");
    }

    public void neuesSpielAnlegen() {
        if (neuesSpiel == null) {
            if (profileZuordnen.überprüfeProfile()) {
                JOptionPane.showMessageDialog(Muehle.this, "Spieler 1 und 2 haben das gleiche Profil", "Information", JOptionPane.INFORMATION_MESSAGE);
            } else {
                spielbrett.removeMouseListener(neuesSpiel);
                neuesSpiel = new NeuesSpiel(this);
                spielbrett.addMouseListener(neuesSpiel);
                // Tabelle aktuallisieren
                highscore.werteAktualisieren((String) profileZuordnen.getSpieler1().getSelectedItem(), Resultat.SPIEL_BESTRITTEN);
                highscore.werteAktualisieren((String) profileZuordnen.getSpieler2().getSelectedItem(), Resultat.SPIEL_BESTRITTEN);
            }
        } else {
            int result = JOptionPane.showConfirmDialog(Muehle.this, "Wollen Sie die aktuelle Partie verwerfen?", "Warnung", JOptionPane.YES_NO_OPTION);
            if (result == JOptionPane.YES_OPTION) {
                spielbrett.removeMouseListener(neuesSpiel);
                neuesSpiel = null;
                neuesSpiel = new NeuesSpiel(Muehle.this);
                spielbrett.addMouseListener(neuesSpiel);
                // Tabelle aktualisieren
                highscore.werteAktualisieren((String) profileZuordnen.getSpieler1().getSelectedItem(), Resultat.SPIEL_BESTRITTEN);
                highscore.werteAktualisieren((String) profileZuordnen.getSpieler2().getSelectedItem(), Resultat.SPIEL_BESTRITTEN);
            }
        }
    }

    public void ladePartie(int dateiindex) {
        int beenden = 0;
        if (dateiindex == 0) {
            pfad = "src\\files\\Spielstand.txt";
        } else {
            pfad = "src\\files\\Spielposition";
        }
        if (dateiindex == 0) {
            if (neuesSpiel != null) {
                int result = JOptionPane.showConfirmDialog(Muehle.this, "Wollen Sie die aktuelle Partie verwerfen?", "Warnung", JOptionPane.YES_NO_OPTION);
                if (result == JOptionPane.NO_OPTION) {
                    beenden = -1;
                }
            }
        }
        if (beenden != -1) {
            spielbrett.removeMouseListener(neuesSpiel);
            neuesSpiel = null;
            try {
                ObjectInputStream ois = new ObjectInputStream(new FileInputStream(pfad));
                Spieler spielerWeiss = (Spieler) ois.readObject();
                Spieler spielerSchwarz = (Spieler) ois.readObject();
                NeuesSpiel.Aktion aktion = (NeuesSpiel.Aktion) ois.readObject();
                NeuesSpiel.Farbe spielerAnReihe = (NeuesSpiel.Farbe) ois.readObject();
                Feld[][] felder = (Feld[][]) ois.readObject();
                Feld markiertesFeld = (Feld) ois.readObject();
                //---------------------------
                spielbrett.steine = (ArrayList) ois.readObject();
                spielbrett.markierung = (Shape) ois.readObject();
                //---------------------------
                schwarzeSteine.steine = (ArrayList) ois.readObject();
                weisseSteine.steine = (ArrayList) ois.readObject();
                schwarzeSteine.setAnzahlSteine(ois.readInt());
                weisseSteine.setAnzahlSteine(ois.readInt());
                //--------------------------
                meldung.setText((String) ois.readObject());
                spielerWeissLabel.setText((String) ois.readObject());
                spielerWeissLabel.setBackground((Color) ois.readObject());
                spielerSchwarzLabel.setText((String) ois.readObject());
                spielerSchwarzLabel.setBackground((Color) ois.readObject());


                // Darstellungen neu zeichnen....
                neuesSpiel = new NeuesSpiel(this, spielerWeiss, spielerSchwarz, aktion, spielerAnReihe, markiertesFeld, felder, spielbrett);
                spielbrett.addMouseListener(neuesSpiel);
                spielbrett.repaint();
                weisseSteine.repaint();
                schwarzeSteine.repaint();

                ois.close();

            } catch (Exception ex) {
                System.err.println(ex.getMessage());
            }


        }
    }

    public void speicherePartie(int dateiindex) {
        if (dateiindex == 0) {
            pfad = "src\\files\\Spielstand.txt";
        } else {
            pfad = "src\\files\\Spielposition";
        }
        if (neuesSpiel != null) {
            try {
                ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(pfad));
                oos.writeObject(neuesSpiel.spielerWeiss);
                oos.writeObject(neuesSpiel.spielerSchwarz);
                oos.writeObject(neuesSpiel.aktion);
                oos.writeObject(neuesSpiel.spielerAnReihe);
                oos.writeObject(neuesSpiel.felder);
                oos.writeObject(neuesSpiel.markiertesFeld);
                //---------------------------------------------
                oos.writeObject(spielbrett.steine);
                oos.writeObject(spielbrett.markierung);
                //-----------------------------------------------
                oos.writeObject(schwarzeSteine.steine);
                oos.writeObject(weisseSteine.steine);
                oos.writeInt(schwarzeSteine.getAnzahlSteine());
                oos.writeInt(weisseSteine.getAnzahlSteine());
                //-----------------------------------------------
                oos.writeObject(meldung.getText());
                oos.writeObject(spielerWeissLabel.getText());
                oos.writeObject(spielerWeissLabel.getBackground());
                oos.writeObject(spielerSchwarzLabel.getText());
                oos.writeObject(spielerSchwarzLabel.getBackground());

                oos.close();

                if (dateiindex == 0) {
                    JOptionPane.showMessageDialog(Muehle.this, "Partie gespeichert", "Information", JOptionPane.INFORMATION_MESSAGE);
                }
            } catch (Exception ex) {
                System.err.println(ex.getMessage());
            }

        }
    }

    public void unentschieden() {
        spielbrett.removeMouseListener(neuesSpiel);
        neuesSpiel = null;
        JOptionPane.showMessageDialog(Muehle.this, "Partie endet unentschieden", "Information", JOptionPane.INFORMATION_MESSAGE);
    }

    // get-Methoden
    public ProfileZuordnen getProfile() {
        return profileZuordnen;
    }

    public Profilspeicher getPs() {
        return ps;
    }

    public Spielsteine getSchwarzeSteine() {
        return schwarzeSteine;
    }

    public Spielbrett getSpielbrett() {
        return spielbrett;
    }

    public JLabel getSpielerSchwarz() {
        return spielerSchwarzLabel;
    }

    public JLabel getSpielerWeiss() {
        return spielerWeissLabel;
    }

    public Spielsteine getWeisseSteine() {
        return weisseSteine;
    }

    public JLabel getMeldung() {
        return meldung;
    }

    public void setMeldung(String text) {
        meldung.setText(text);
    }

    public void spielerSchwarzGewinnt() {
        JOptionPane.showMessageDialog(Muehle.this, spielerSchwarzLabel.getText() + " gewinnt das Spiel", "Information", JOptionPane.INFORMATION_MESSAGE);
        spielbrett.removeMouseListener(neuesSpiel);
        neuesSpiel = null;
        highscore.werteAktualisieren(spielerSchwarzLabel.getText(), Resultat.SIEG);
        highscore.werteAktualisieren(spielerWeissLabel.getText(), Resultat.NIEDERLAGE);
    }

    public void spielerWeissGewinnt() {
        JOptionPane.showMessageDialog(Muehle.this, spielerWeissLabel.getText() + " gewinnt das Spiel", "Information", JOptionPane.INFORMATION_MESSAGE);
        spielbrett.removeMouseListener(neuesSpiel);
        neuesSpiel = null;
        highscore.werteAktualisieren(spielerWeissLabel.getText(), Resultat.SIEG);
        highscore.werteAktualisieren(spielerSchwarzLabel.getText(), Resultat.NIEDERLAGE);
    }

    // main-Methode
    public static void main(String[] args) {
        Muehle spiel = new Muehle();
        spiel.setVisible(true);
        new Datenbank();


    }
}
 
G

Gast2

Gast
Wie ich schon sagte.

Entweder du definierst die Variable als final - dann kannst du sie auch in dem ActionListener vwerwenden - oder aber du legst im ActionListener ein neues Profiloptionen Objekt an.

Scha dir noch mal mein letztes Posting an.
 
E

Eleandro

Gast
Hi,

1. Mögl.: Als final deklarieren: Mache ich es so richtig?
Java:
 final Profiloptionen profiloptionen = new Profiloptionen();
  profiloptionen.setVisible(true); //Aufruf des Fensters

2. Neues Objekt erzeugen: Das würde zwar theretisch gehen, aber ich verstehe nicht, wieso mir beim erstellen des neuen Objekts dieser Fehler angezeigt wird:


Der Fehler steht bei beiden Varianten da.
 
E

Eleandro

Gast
Das im ersten Post beschriebene Problem mit der Inner Class stammt nicht aus der Klasse Mühle, sondern aus Profiloptionen und findet sich in Zeile 311 (siehe Code aus erstem Post). Diesen Fehler konnte ich umgehen, indem ich einfach dank deinem Tipp ein neues Objekt angelegt habe:

[JAVA=308]
neuesSpiel.addActionListener(new ActionListener (){
public void actionPerformed (ActionEvent e){

Muehle muehle = new Muehle();
muehle.neuesSpielAnlegen(); //muehle.neues....?
setVisible(false); //Fenster schließen
// neues Spiel beginnen
}

});
[/code]
Hier klappt das mit dem Objekterstellen also; in der anderen Klasse hingegeben partout nicht. Dankeschön, dass du mir hilfst!
 
E

Eleandro

Gast
Es hat nun mittlerweile geklappt, nachdem ich die richtigen Parameter beim Aufruf mitangegeben habe. So sieht's in meinem Fall dann aus:
Java:
Profiloptionen profiloptionen = new Profiloptionen( Muehle.this,  highscore, 
profiloptionen.setVisible(true);

Nochmals Danke für eure Bemühungen!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G Objekt öffnen von einer anderen Klasse öffnen Java Basics - Anfänger-Themen 6
K JDBC - Typ Connection in jeder Klasse neu öffnen? Java Basics - Anfänger-Themen 4
M Eine Klasse die sich selber öffnen kann. Java Basics - Anfänger-Themen 4
N Nach einer Abfrage bestehende Klasse öffnen Java Basics - Anfänger-Themen 2
W Nochmal das Decorator - Mit der abstrakten Klasse möglich? Java Basics - Anfänger-Themen 10
I @Inject in normaler Klasse? Java Basics - Anfänger-Themen 4
P Enum oder normale Klasse? Java Basics - Anfänger-Themen 10
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
P Wie kann ich meine Keylistener Klasse unterscheiden lassen, von welcher "Quelle" der Input kommt? Java Basics - Anfänger-Themen 2
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Amina556 Eigene Klasse definieren Java Basics - Anfänger-Themen 9
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Klasse in Runden Klammern bei Objektimplementierung Java Basics - Anfänger-Themen 4
J Klassen Klasse als Komponententyp bei Feldern Java Basics - Anfänger-Themen 2
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
Detlef Bosau nichtstatische Innere Klasse, this Pointer. Java Basics - Anfänger-Themen 47
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
J Zugriff auf eine 2. Klasse die per UI-Designer erstellt wurde Java Basics - Anfänger-Themen 1
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
B Klasse statisch erstellen da n-mal geladen Java Basics - Anfänger-Themen 3
T Meine Klasse wird nicht gefunden Java Basics - Anfänger-Themen 1
XWing Random Punkte erstellen mit der Random klasse Java Basics - Anfänger-Themen 15
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
frager2345 Optional Klasse Java Java Basics - Anfänger-Themen 2
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
H Klassen Typ und Intitialisierungs-Klasse, wer bestimmt was? Java Basics - Anfänger-Themen 1
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
T Thread beenden aus zweiter Klasse Java Basics - Anfänger-Themen 4
frager2345 Java Klasse Buch verwalten Java Basics - Anfänger-Themen 0
frager2345 Java eigen Klasse zum verwalten von Büchern Java Basics - Anfänger-Themen 3
T Zugriff auf Control anderer Klasse Java Basics - Anfänger-Themen 5
H Compiler-Fehler Klasse in einem Package wird nicht gefunden bzw. akzeptiert Java Basics - Anfänger-Themen 12
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
G zwei Instanzen einer Klasse Java Basics - Anfänger-Themen 29
C Int an andere Klasse übergeben Java Basics - Anfänger-Themen 26
sserio Wie kann man nach einer Klasse fragen? Java Basics - Anfänger-Themen 12
B Klasse "Character" Java Basics - Anfänger-Themen 2
F Suche nach betreuender Person für eine Jahresarbeit der 12. Klasse. Java Basics - Anfänger-Themen 6
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
U Warum kann ich, auf private Variablen zugreifen, wenn ich ein Objekt in der Klasse, die private Variablen hat erstelle und dort drauf zugreifen will? Java Basics - Anfänger-Themen 7
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
I Array Länge in Klasse festlegen Java Basics - Anfänger-Themen 1
L Klassen Vektor Klasse Java Basics - Anfänger-Themen 2
I Interface von einer EJB Klasse, um Code zu reduzieren Java Basics - Anfänger-Themen 1
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
M Wie kann ich eine Methode aus einem Interface in eine Klasse implementieren, so dass sie ihre Funktion ausführt? Java Basics - Anfänger-Themen 7
Igig1 Welche Werte sind als default Werte in einem Array, der als Datentyp eine Klasse hat? Java Basics - Anfänger-Themen 1
X Was ist der Unterschied zwischen materialisierten und nichtmaterialisierten Attributen einer Klasse? Java Basics - Anfänger-Themen 1
W Klasse existiert prüfen Java Basics - Anfänger-Themen 5
U Wie ein Attribut von einer Klassenmethode in der Klasse speichern= Java Basics - Anfänger-Themen 2
O Wie erstelle ich eine Instanz in einer Klasse für die ich die Instanz will? Java Basics - Anfänger-Themen 4
W Verschiedene Methoden in einer Klasse in der Main aufrufen? Java Basics - Anfänger-Themen 8
M Eclipse kennt keine String Klasse mehr Java Basics - Anfänger-Themen 1
M Frage zur Methode split der Klasse String Java Basics - Anfänger-Themen 32
J Fehler bei array aus anderer Klasse Java Basics - Anfänger-Themen 3
D Einen boolischen Wert aus einer Methode in einer anderen Klasse aufrufen? Java Basics - Anfänger-Themen 11
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
R TreeSet Zugriff aus anderer Klasse Java Basics - Anfänger-Themen 8
C Auf die Methode einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 1
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
KogoroMori21 Objektvariable anderer Klasse übernehmen, Getter/Setter Java Basics - Anfänger-Themen 11
Vivien Auf eine Variable von einer anderen Klasse aus zugreifen Java Basics - Anfänger-Themen 3
M Aufruf von statischen Methoden einer anderen Klasse Java Basics - Anfänger-Themen 15
tony241188 Implementieren Sie die Klasse Hersteller, welche die folgenden Elektrogeräte produziert Java Basics - Anfänger-Themen 3
J Junit4 Klasse erstellen Java Basics - Anfänger-Themen 5
T Auf Instanz der selben Klasse aus überschriebener Methode in Methode zugreifen. Java Basics - Anfänger-Themen 2
M Scanner Klasse Java Basics - Anfänger-Themen 4
L Meine erste eigene Exception Klasse Java Basics - Anfänger-Themen 10
E Warum lässt sich eine Klasse nicht starten, wenn eine andere Klasse in dem Modul fehlerhaft ist? Java Basics - Anfänger-Themen 1
CptK Vererbung Attributtyp in Super-Klasse noch nicht festlegen Java Basics - Anfänger-Themen 1
P Wie rufe ich Methoden mit einer Referenz auf eine Klasse||Objekt auf Java Basics - Anfänger-Themen 4
I JaxB und Klasse "Object" ? Java Basics - Anfänger-Themen 7
H Quellcode Scanner Klasse Java Basics - Anfänger-Themen 2
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
A Klasse Menge mit Objekten der Klasse Person Java Basics - Anfänger-Themen 8
C Meldung einer Klasse nach "oben" Java Basics - Anfänger-Themen 6
A Methode in einer anderen Klasse verwenden Java Basics - Anfänger-Themen 1
D Attribut Telefonnummer - eigene Klasse oder String Java Basics - Anfänger-Themen 13
N Variable aus anderen Variablen in statischer Klasse berechnen/abspeichern? Java Basics - Anfänger-Themen 4
jonny_2k12 Wie kann ich eine ArrayList aus einer Klasse in eine andere übergeben? Java Basics - Anfänger-Themen 21
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7
C Methoden können nicht auf Instanzvariable der Klasse zugreifen Java Basics - Anfänger-Themen 3
J Scanner-Klasse Java Basics - Anfänger-Themen 2
itsmejo Erste Schritte Auf Attribut einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 14
P NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap trotz vorhandener Klasse? Java Basics - Anfänger-Themen 10
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
M konzeptuelle Frage: In welcher Klasse definiert man am Besten Methoden, die die Kommunikation mit dem User regeln? Java Basics - Anfänger-Themen 8
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
P Klasse hat keinen Zugriff auf getter/setter-Methoden eines Objektes Java Basics - Anfänger-Themen 9
M Integer aus aus einer Klasse in andere speichern Java Basics - Anfänger-Themen 12
B Objekt von EJB in Controller (CDI) - Klasse füllen? Java Basics - Anfänger-Themen 3
M Java Klasse Object Java Basics - Anfänger-Themen 5
E abstrakte Klasse implementiert ein Interface Java Basics - Anfänger-Themen 40
B Klassen Abstrake Klasse und Template Methode Java Basics - Anfänger-Themen 4
S ArrayList in andere Klasse übernhemen Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben