Hi,
vlt. erst mal kurz was zu mir: Ich bin 25 Jahre alt, wohne im schönen Offenbach und mache momentan meinen staatlich geprüften Techniker, nachdem ich vorher eine Ausbildung zum IT-Systemelektroniker abgeschlossen habe.
Im Zuge des Technikers haben wir angefangen, ein bisschen Java zu programmieren (das Übliche - Benzinverbrauchsrechner, Taschenrechner...) und ich muss gestehen, dass es mich ein bisschen angefixt hat. Jetzt bin ich gerade dabei, in meiner Freizeit etwas wirklich sinnvolles zu programmieren: Ein Spiel.
Da ich aber immer noch Anfänger bin und Java erst seit ein paar Wochen kenne, habe ich immer noch viele Probleme - und dafür habe ich diesen Thread hier erstellt. Ich hoffe, das ist cool so - ich kann ja auch immer mal den Projektfortschritt posten usw.
Ach ja noch was, ich programmiere in Eclipse.
Also Frage 1: Ich habe in meinem Spiel mehrere Grafiken, die übereinander liegen sollen (Hauptsächliche die Hintergrundgrafik und die Spielfigur). Dazu möchte (muss?) ich ja die JLayeredPane verwenden. Das Problem ist, dass die die entweder nicht zum laufen bekomme, oder die Layers irgendwie nicht klappen. Die Ressourcen (Grafiken) findet Java aber, ich habe sie zum Test mal einzeln geladen. Aber sobald ich alles in der LayeredPane anzeigen lassen will, erscheint keine einzelne Grafik...
Da das Programm noch nicht sehr weit ist, poste ich euch mal den kompletten Sourcecode. Ich hoffe jemand findet den Fehler.
vlt. erst mal kurz was zu mir: Ich bin 25 Jahre alt, wohne im schönen Offenbach und mache momentan meinen staatlich geprüften Techniker, nachdem ich vorher eine Ausbildung zum IT-Systemelektroniker abgeschlossen habe.
Im Zuge des Technikers haben wir angefangen, ein bisschen Java zu programmieren (das Übliche - Benzinverbrauchsrechner, Taschenrechner...) und ich muss gestehen, dass es mich ein bisschen angefixt hat. Jetzt bin ich gerade dabei, in meiner Freizeit etwas wirklich sinnvolles zu programmieren: Ein Spiel.
Also Frage 1: Ich habe in meinem Spiel mehrere Grafiken, die übereinander liegen sollen (Hauptsächliche die Hintergrundgrafik und die Spielfigur). Dazu möchte (muss?) ich ja die JLayeredPane verwenden. Das Problem ist, dass die die entweder nicht zum laufen bekomme, oder die Layers irgendwie nicht klappen. Die Ressourcen (Grafiken) findet Java aber, ich habe sie zum Test mal einzeln geladen. Aber sobald ich alles in der LayeredPane anzeigen lassen will, erscheint keine einzelne Grafik...
Da das Programm noch nicht sehr weit ist, poste ich euch mal den kompletten Sourcecode. Ich hoffe jemand findet den Fehler.
Java:
package mmmm;
//import Klassen
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
//JFrame fuer Fenster
public class game extends JFrame implements ActionListener {
// Labels, Textfields & Buttons deklarieren/erzeugen
private static final long serialVersionUID = 1L;
JPanel jpnlCenter = new JPanel ();
JLayeredPane jlpPane = new JLayeredPane ();
JLabel picLabel = new JLabel(new ImageIcon("field.png"));
JLabel mine = new JLabel(new ImageIcon("mine.png"));
JMenuBar mbar = new JMenuBar();
JMenu m1 = new JMenu ("Spiel");
JMenu m2 = new JMenu ("?");
JMenuItem mlBer = new JMenuItem ("Neu starten");
JMenuItem mlBen = new JMenuItem ("Beenden");
JMenuItem mlHelp = new JMenuItem ("Anleitung");
JMenuItem mlUeb = new JMenuItem ("Über...");
JButton test = new JButton ("test");
// Konstruktor
public game (String title) {
super (title);
// Content Pane
// Container cp = getContentPane();
// cp.add(BorderLayout.CENTER, jpnlCenter);
// jpnlCenter.setLayout (null);
// Center Menueleiste
setJMenuBar (mbar);
mbar.add (m1);
mbar.add(m2);
m1.add (mlBer);
mlBer.setToolTipText ("Startet das Spiel neu");
mlBer.addActionListener(this);
m1.add(mlBen);
mlBen.setToolTipText ("Beendet das Spiel");
mlBen.addActionListener(this);
m2.add(mlHelp);
mlHelp.setToolTipText ("Spielanleitung");
mlHelp.addActionListener(this);
m2.add(mlUeb);
mlUeb.setToolTipText ("Informationen über das Spiel");
mlUeb.addActionListener(this);
// Center Content
// Layered Pane
jpnlCenter.add (jlpPane, BorderLayout.CENTER);
jlpPane.setBounds (0, 0, 800, 800);
jlpPane.add (picLabel, new Integer (0), 0);
picLabel.setBounds(0, 0, 800, 800);
jlpPane.add (test, new Integer (0), 0);
test.setBounds(0, 0, 80, 80);
jlpPane.add(mine, jlpPane.POPUP_LAYER);
mine.setBounds(50, 50, 20, 20);
// Fenstereigenschaften
this.setSize(800, 800);
setLocationRelativeTo (null);
setResizable (false);
this.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
// Main Methode
public static void main(String[] args) {
game f = new game ("Game");
}
// Methode für ActionListener
public void actionPerformed(ActionEvent e) {
}
}