Vererbung Code einbinden

Pataraca

Mitglied
Hallo Leute,
auch wenn ich gleich von euch als Noob zerfetzt werde erhoffe ich mir etwas Hilfe von euch. Ich saß da jetzt schon ewig dran und habe es nicht hin bekommen.
Und zwar möchte ich PacMan programmieren, in etwas abgeänderter Form. Ich habe meine Klasse mit der MainMethode und möchte mit ihr ua mein Spielfeld zeichnen lassen. Das Spielfeld zeichnen an sich funktioniert.

Code:
public class frame extends JFrame implements ActionListener {

    private JButton Start;
    private JButton Einstellung;
    private JButton Info;
    private JButton Ende;
     
     
    public static void main(String[] args) {
         
         
        //Menό wird erstellt
        frame frame = new frame("Hauptmenό");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(450,450);
         
         
        //Layout wird selber angeordnet όber X/Y-Koordinaten
        frame.setLayout(null);
        frame.setVisible(true);
         

    }
    //Buttons werden angeordnet (Koordinaten) und ausgefόhrt
    public frame(String title){
        super(title);
         
        Start = new JButton("Skeletor starten");
        Start.setBounds(140,40,160,40); //Position und Grφίe festlegen
        Start.addActionListener(this);
        add(Start); //'Start' auf Grafikoberflδche hinzufόgen
         
        Einstellung = new JButton("Einstellungen");
        Einstellung.setBounds(140,120,160,40);
        Einstellung.addActionListener(this);
        add(Einstellung);
         
        Info = new JButton("Info/ Hilfe");
        Info.setBounds(140,200,160,40);
        Info.addActionListener(this);
        add(Info);
         
        Ende = new JButton("Beenden");
        Ende.setBounds(140,280,160,40);
        Ende.addActionListener(this);
        add(Ende);
         
    }
     
     
    public static void fenster (){
        JFrame fenster = new JFrame();
        fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        fenster.setSize(620, 380);
        fenster.setVisible(true);{
        fenster.add(new gui()); //Verknόpfung zu Klasse 'public gui' - Hintergrundbild erzeugen
         
    }
     
    //public static void auswahl(){
         
     
        // }
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
         
        if(e.getSource()== Start ){
        fenster();
        }
     
    //Auswahlmenό, ist noch als eigene Klasse zu erstellen!
        if (e.getSource()== Einstellung){
        //  auswahl();   
        }
     
    //Erstellen einer Messagebox - z.B. fόr Spielregeln
        if (e.getSource()== Info){
        Object[] options = { "OK"};
         
        JOptionPane.showOptionDialog(null,"Projektgruppe-Skeletor","Spielregeln",JOptionPane.DEFAULT_OPTION,JOptionPane.PLAIN_MESSAGE,null,options,options[0]);
         
        }
     
    //hier wird das Programm beim Drόcken auf den Button "Ende" geschlossen
        if (e.getSource()== Ende){
        System.exit(0);
        }
    }
}

Spielfeld (noch mit eigener Main)

Code:
public class Main {
     

    public static void main(String[] args) {
         
         
        // Textdatei fόr Level1 einlesen (Inhalt Array)
        ArrayList<String> bricks = Main.read("Versuch1.txt");

        //Fenster erstellen, dass das Array enthδlt
        Form window = new Form(bricks);
        window.setTitle("Knochenjadt");
        window.setLocationRelativeTo(null); //Fenster zentrieren/wichtig zum kalkulieren der Grφίe

        window.setVisible(true);
        window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }

     
    //Textdatei lesen
    private static ArrayList<String> read(String filename) {
        ArrayList<String> lines = new ArrayList<String>() ;
        try {
            FileInputStream fstream = new FileInputStream(filename);
            DataInputStream in = new DataInputStream(fstream);
            BufferedReader br = new BufferedReader(new InputStreamReader(in));
            String line;

            while ((line = br.readLine()) != null) {
                lines.add(line);
            }

            // Input schlieίen
            in.close();
        } catch (Exception e) {
            System.err.println("Error: " + e.getMessage());
        }
         
        return lines;

    }
}

Code:
public class Form extends JFrame {
    private static final long serialVersionUID = 1L;
     
    //Grφίe der Kδstchen festlegen
    private static final int BRICK_SIZE = 20;

    // Array erstellen, dass mit Srings (#,X) gefόllt wird
    ArrayList<String> bricks;

    public Form(ArrayList<String> bricks) {

        if (bricks.size() != 0) {
            // Grφίe anhand der Zeilenanzahl * Kaestchengroίe bestimmen
            int width = bricks.get(0).toCharArray().length * BRICK_SIZE;
            int height = bricks.size() * BRICK_SIZE;

            //etwas vergrφίert, damit Fenster grφίer als das Spielfeld ist
            this.setSize(width + (3 * BRICK_SIZE), height + (3 * BRICK_SIZE));

        }
        this.bricks = bricks;
    }

    // Labyrinth zeichnen
    public void paint(Graphics g) {

        super.paintComponents(g);

        Graphics2D painter = (Graphics2D) g.create();
        painter.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);

        // Farbe der Gδnge festlegen
        painter.setColor(Color.WHITE);
        painter.fillRect(0, 0, getWidth(), getHeight());

        // Farbe der Wδnde festlegen
        Color line = Color.GRAY.brighter();
        Color fill = Color.BLUE;

        int x = 0;
        int y = BRICK_SIZE + 20;

        for (String wall : this.bricks) {
            x = BRICK_SIZE + 10;

            // Labyrinth nach Textdatei erstellen
            for (char c : wall.toCharArray()) {
                if (c == '#') {
                    painter.setColor(fill);
                    painter.fillRect(x, y, BRICK_SIZE, BRICK_SIZE);

                }

                else {
                    painter.setColor(line);
                    painter.drawRect(x, y, BRICK_SIZE, BRICK_SIZE);

                }
                x += BRICK_SIZE;

            }
            y += BRICK_SIZE;

        }

    }

}
 

Pataraca

Mitglied
Was ich machen muss, um die Codes zusammen zu führen.

EDIT:

Ich habe es fast. Jetzt stimmt nur noch die Fenstergröße nicht

Code:
package Pac;
import javax.swing.*;

//import Feld.Form;
//import Feld.Main;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;

public class frame extends JFrame implements ActionListener {

    private JButton Start;
    private JButton Einstellung;
    private JButton Info;
    private JButton Ende;
   
   
    public static void main(String[] args) {
       
       
        //Menü wird erstellt 
        frame frame = new frame("Hauptmenü");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(450,450);
       
       
        //Layout wird selber angeordnet über X/Y-Koordinaten
        frame.setLayout(null);
        frame.setVisible(true);
       

    }
    //Buttons werden angeordnet (Koordinaten) und ausgeführt 
    public frame(String title){
        super(title);
       
        Start = new JButton("Skeletor starten");
        Start.setBounds(140,40,160,40); //Position und Größe festlegen
        Start.addActionListener(this);
        add(Start); //'Start' auf Grafikoberfläche hinzufügen
       
        Einstellung = new JButton("Einstellungen");
        Einstellung.setBounds(140,120,160,40); 
        Einstellung.addActionListener(this);
        add(Einstellung); 
       
        Info = new JButton("Info/ Hilfe");
        Info.setBounds(140,200,160,40); 
        Info.addActionListener(this);
        add(Info); 
       
        Ende = new JButton("Beenden");
        Ende.setBounds(140,280,160,40); 
        Ende.addActionListener(this);
        add(Ende); 
       
    }
   
   
    public static void fenster (){
        JFrame fenster = new JFrame();
        fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //fenster.setSize(620, 380);
//        fenster.setVisible(true);
        {
//        fenster.add(new Form()); //Verknüpfung zu Klasse 'public Form' - Labyrinth erzeugen
       
    }
   
        // Textdatei für Level1 einlesen (Inhalt Array)
                ArrayList<String> bricks = frame.read("C:/Users/Pataraca/Documents/workspace_SS2017/PacMan/src/Pac/Versuch1.txt");

                //Fenster erstellen, dass das Array enthält
                Form window = new Form(bricks);
                window.setTitle("Knochenjadt");
                window.setLocationRelativeTo(null); //Fenster zentrieren/wichtig zum kalkulieren der Größe

                window.setVisible(true);
                window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            }

           
            //Textdatei lesen
            private static ArrayList<String> read(String filename) {
                ArrayList<String> lines = new ArrayList<String>() ;
                try {
                    FileInputStream fstream = new FileInputStream(filename);
                    DataInputStream in = new DataInputStream(fstream);
                    BufferedReader br = new BufferedReader(new InputStreamReader(in));
                    String line;

                    while ((line = br.readLine()) != null) {
                        lines.add(line);
                    }

                    // Input schließen
                    in.close();
                } catch (Exception e) {
                    System.err.println("Error: " + e.getMessage());
                }
               
                return lines;

            }
   

    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
       
        if(e.getSource()== Start ){
        fenster();
        }
   
    //Auswahlmenü, ist noch als eigene Klasse zu erstellen!
        if (e.getSource()== Einstellung){
        //    auswahl();   
        }
   
    //Erstellen einer Messagebox - z.B. für Spielregeln 
        if (e.getSource()== Info){
        Object[] options = { "OK"};
       
        JOptionPane.showOptionDialog(null,"Projektgruppe-Skeletor","Spielregeln",JOptionPane.DEFAULT_OPTION,JOptionPane.PLAIN_MESSAGE,null,options,options[0]);
       
        }
   
    //hier wird das Programm beim Drücken auf den Button "Ende" geschlossen
        if (e.getSource()== Ende){
        System.exit(0); 
        }
    }
}
 
Zuletzt bearbeitet:

Pataraca

Mitglied
Oder kann mir jemand sagen, warum ich die int Werte width bzw height nicht mit der anderen Klasse aufrufen kann? Und zu static ändern kann ich die Werte auch nicht :/
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C Fremden Code ins Programm einbinden Allgemeine Java-Themen 12
M Unsicher, ob das Code richtig ist Allgemeine Java-Themen 4
MarvinsDepression Unbekanntes Zeichen in fremden Code wirft Fragen auf Allgemeine Java-Themen 4
schemil053 Methoden Code-Verbesserung Allgemeine Java-Themen 2
D Webarchive (war): Code verschleiern Allgemeine Java-Themen 7
D Compiler-Fehler child process exited with code 1 Allgemeine Java-Themen 1
Queenman Interface Mein Microsoft Visual Studio Code zeigt komische Dinge & Menüs an Allgemeine Java-Themen 9
A Clean Code: Variable vs. Methode Allgemeine Java-Themen 8
berserkerdq2 Versteht jemand, was diese beiden Zahlen bei dem IJVM Code zu bedeuten haben? Allgemeine Java-Themen 10
OnDemand Releaseversion Tag in Code Allgemeine Java-Themen 5
ERlK JDA Code funktioniert nicht? Allgemeine Java-Themen 4
F Code auslagern Allgemeine Java-Themen 5
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
JordenJost Unverständlicher Java code? Allgemeine Java-Themen 21
V Hilfe mit Java Code Allgemeine Java-Themen 4
S Processing Java Code verstehen Allgemeine Java-Themen 4
A code wird nicht ausgeführt Allgemeine Java-Themen 3
B Bitte um Code Erklärung Allgemeine Java-Themen 5
N nicht einsehbarer Fehler im code, kann nicht mehr übersetzten Allgemeine Java-Themen 51
N Regulären Ausdruck in normalen Java-Code umwandeln Allgemeine Java-Themen 12
OnDemand Clean Code oder Allgemeine Java-Themen 5
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
J Simple Date Format Alternativen bitte um Code Allgemeine Java-Themen 14
AGW in Java-Code plötzlich ein paar Wörter in Rot Allgemeine Java-Themen 2
L Best Practice Auslagerung von Code = Performance Optimierung? Allgemeine Java-Themen 4
H Precompilierten code ansehen Allgemeine Java-Themen 3
R Wo müsste ich im Code eine Änderung vornehmen? Allgemeine Java-Themen 6
L Ausgabe von in Echtzeit ausgeführten Code Allgemeine Java-Themen 9
Drachenbauer Wie kann ich die menge an code reduzieren? Allgemeine Java-Themen 28
Thallius Warum ist dieser Code OS abhängig? Allgemeine Java-Themen 10
S Code Erklärung Allgemeine Java-Themen 21
B Pausem im Code Allgemeine Java-Themen 2
T Java-Quiz Code Fehler Allgemeine Java-Themen 10
L Eclipse Java Code ausführen Allgemeine Java-Themen 18
F Java Code ausführen direkt nach Anmelden in Windows Allgemeine Java-Themen 2
F Code in Klassen bringen Allgemeine Java-Themen 4
S Gibt es eigentlich Java Source Code Interpreter..? Allgemeine Java-Themen 13
J JUnit - Auslassen von Code Allgemeine Java-Themen 25
F Klassen Spaghetti Code Vermeidung Allgemeine Java-Themen 16
C code oder Bibliotheken für 2-Center Problem Allgemeine Java-Themen 4
J Code Page characters darstellen Allgemeine Java-Themen 12
J wie sollte man sinnvoll seinen Code aufteilen Allgemeine Java-Themen 6
I Python Code in Java Code Allgemeine Java-Themen 9
M Java (GUI) Code verdoppeln oder anzeige mehrmals anzeigen? Allgemeine Java-Themen 8
N Wie öffne ich einen runtergeladadenen Code in IntelliJ Allgemeine Java-Themen 3
R Fehler im Code Allgemeine Java-Themen 1
R Fehler im Code Allgemeine Java-Themen 3
O Standard library nativer C code Allgemeine Java-Themen 1
R Wo ist mein Fehler in diesem Code Allgemeine Java-Themen 7
S Java Editor Bekomme bei der Code-Vervollständigung die Zeichen &#8203; Allgemeine Java-Themen 3
N Morse Code decoder Allgemeine Java-Themen 9
O Erste Schritte Benzinverbrauch Code Hilfe Allgemeine Java-Themen 3
S Eclipse exit code 805306369 Allgemeine Java-Themen 1
Developer_X Website HTML Code von HTTPS URL laden Allgemeine Java-Themen 0
S Wie kann ich eine kleine Stelle in meinem Code mit multiplen Threads abarbeiten..? Allgemeine Java-Themen 20
S Code 'innerhalb' des synchronen Bereichs einer BlockingQueue ausfuehren..? Allgemeine Java-Themen 7
F Verständlichkeitsproblem bei Java Code?! Allgemeine Java-Themen 2
G Eclipse Eclipse: Unreachable code Allgemeine Java-Themen 16
P Java Android Code in IOS compilieren? Allgemeine Java-Themen 9
C Code vereinfachen Allgemeine Java-Themen 2
T Hilfe bei Code Allgemeine Java-Themen 3
R Java-Code für folgene Aufgabe? Allgemeine Java-Themen 8
Prafy Best Practice Code Refaktorisierung Allgemeine Java-Themen 7
WetWer Was bedeutet/macht ein Exit-Code Allgemeine Java-Themen 1
D Code für bereitgestellte Methoden Allgemeine Java-Themen 1
perlenfischer1984 HTML Code decodieren Allgemeine Java-Themen 2
C ASCII-Code in Java Allgemeine Java-Themen 1
J Java-Code in DLL packen Allgemeine Java-Themen 5
J LWJGL 3 Error Code 1282 Allgemeine Java-Themen 4
0 Code startet nicht (Keine Warnung/Fehlermeldung) Allgemeine Java-Themen 4
A Frage zu meinem Code Allgemeine Java-Themen 2
B Code generierung Velocity Templates Telosys Allgemeine Java-Themen 1
E Fehlermeldung vor dem Programm code Allgemeine Java-Themen 1
B JAVA - mehrere Clienten gleichzeitig starten. Nicht bei Code! Allgemeine Java-Themen 3
Fischkralle Ausführen von fremden Code Allgemeine Java-Themen 14
wolfgang63 Code snipped Software Allgemeine Java-Themen 1
L Eclipse Editieren des Code templates für Override methods Allgemeine Java-Themen 2
J Java code "plugin" fähig machen Allgemeine Java-Themen 4
alderwaran .jar Code Signing, User-Keystore und Fragen dazu Allgemeine Java-Themen 0
Thallius Wie verstecke ich meinen private Key am besten im Code? Allgemeine Java-Themen 10
A Thread: Code paralell ausführen in mehreren Instanzen Allgemeine Java-Themen 1
B NullPointerException - Aber kein Fehler im Code Allgemeine Java-Themen 4
N HTTP response code: 403 Allgemeine Java-Themen 3
D Code bitte mit 19 stelligen Zahlen kompatibel machen Allgemeine Java-Themen 5
D Java Compiler code referencen Allgemeine Java-Themen 0
B Fehler im Java-Code Allgemeine Java-Themen 4
A PHP-Code zu Java-Code Allgemeine Java-Themen 5
M Code läuft unter windows aber nicht unter Linux Allgemeine Java-Themen 6
X Was macht folgender Code!? Allgemeine Java-Themen 6
K Code zu einem Projekt entschluesseln Allgemeine Java-Themen 15
H Java Leistungssteigerung durch Code Anpassung Allgemeine Java-Themen 5
Fab1 Best Practice Vorgehensweise bestehenden Code/Programm verschönern Allgemeine Java-Themen 4
M Code optimieren Allgemeine Java-Themen 7
A jEditorPane Html Datei öffnen (code) Allgemeine Java-Themen 3
S EAN-Code Tabelle für CD's Allgemeine Java-Themen 2
T Code durch eigenes Frame pausieren (ähnlich JDialog) Allgemeine Java-Themen 4
J Erzeugung von Java-Code Allgemeine Java-Themen 2
A Source code analyze Allgemeine Java-Themen 8
N VB Code in Java verwenden Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben