Interface Bilder mit Graphics g zeichnen

CptK

Bekanntes Mitglied
Hallo,
ich habe mit Graphics meinen Hintergrund bestehend aus 3 ebenen gezeichnet und möchte nun, dass dieser mit dem Keylistner bewegt werden kann. Das Problem ist, dass ich nicht weiß, wie ich den X-Wert so ändere, dass er auch übernommen wird...
Java:
package Gui;

import java.awt.*;

import javax.swing.*;

import Actions.ImageLoader;

public class Panel extends JPanel {
   
    private static final long serialVersionUID = 1L;
    private ImageLoader il = new ImageLoader();   
    private int bgX = -1000;
   
    public Panel() {
       
        new JPanel();
        setSize(1000,743);
        setLayout(null);
        setVisible(true);
        repaint();
       
    }
   
    public void paintComponent(Graphics g) {
       
        g.drawImage(il.BgE3(), bgX, 0, 3000, 743, null);
        g.drawImage(il.BgE2(), bgX, 0, 3000, 743, null);
        g.drawImage(il.BgE1(), bgX, 0, 3000, 743, null);
       
    }
   
    public Panel(String x) {    System.out.println("Panel wurde aufgerufen aus der Klasse " + x);     }
   
    public void setBgX(int bgx) {    bgX = bgx; repaint();    }
   
    public int getBgX() {    return bgX;    }

}
Java:
package Actions;

import java.awt.event.*;

import Gui.Panel;

public class KeyHandler implements KeyListener {
   
    Panel p = new Panel("KeyHandler");
   
    @Override
    public void keyPressed(KeyEvent e) {
       
        if(e.getKeyCode() == KeyEvent.VK_LEFT) {
            if(p.getBgX() <= 0){
                p.setBgX(p.getBgX() + 5);
                p.repaint();
            }
        }
       
    }

    @Override
    public void keyReleased(KeyEvent e) {
        // TODO Auto-generated method stub
       
    }

    @Override
    public void keyTyped(KeyEvent e) {
        // TODO Auto-generated method stub
       
    }

}

Ich habe Methoden, die den x-Wert ändern, jedoch passiert wenn ich die Taste drücke nichts. Wäre schön wenn mir jemand sagen könnte, was ich falsch gemacht habe und wie es richtig geht.

PS: Ich habe dem JFrame den KeyListner auch hinzugefügt.

Vielen Dank für die Hilfe!
 

CptK

Bekanntes Mitglied
@Robat mache ich, aber in der JFrame Klasse
Java:
package Gui;

import java.awt.Point;
import java.awt.Toolkit;

import javax.swing.*;
import Actions.*;

public class Main extends JFrame {
   
    private static final long serialVersionUID = 1L;

    public static void main(String[] args) {
        new Main();       
    }
   
    public Main() {
       
        new JFrame();
        setSize(1000,743);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLayout(null);
        setLocationRelativeTo(null);
        setResizable(false);
        requestFocus();
        addMouseListener(new MouseHandler());
        addMouseMotionListener(new MouseMotionHandler());
        addKeyListener(new KeyHandler());
        setContentPane(new Panel());
       
        try {
         ImageIcon icon = new ImageIcon("rsc/zielen.png");
         setCursor(Toolkit.getDefaultToolkit().createCustomCursor(icon.getImage(),new Point(0,0),"custom cursor"));
        }    catch(Exception e)    {System.out.println("klappt net");    }
       
        setVisible(true);
       
       
    }

}
oder muss das in der Panel Klasse nochmal sein?
 

Robat

Top Contributor
Okay das wusste ich natürlich nicht.

1. Ruf nicht setContentPane(new Panel()); auf sondern benutz die add() Methode. Es ist hier nicht nötig das ContentPane vom JFrame zu tauschen
2. Das Panel was du dem JFrame hinzufügst hat nichts mit dem Panel aus Listener zu tun! Nur weil du 2 Kisten nebeneinander stellst, heißt es nicht dass beide den selben Inhalt haben.
Du musst das Panel, was du in der Main Klasse erstellst, dem KeyHandler im Konstruktor übergeben, um damit in der KeyHandler-Klasse zu arbeiten. Du darfst im KeyHandler kein neues Panel Objekt erstellen.
3. Die Aufrufe new JFrame() bzw new JPanel() in den Konstruktoren sind sinnlos. Weißt du was du da machst bzw hat es einen tiefsinnigen Grund, dass du das machst?
 

CptK

Bekanntes Mitglied
Also tut mir leid falls das ein bisschen dumm rüber kommt, aber ich mache das gerade zum ersten Mal, also ich habe jetzt das
Java:
new JFrame();
und
Java:
new JPanel();
entfernt und in der Klasse KeyHandler das Objekt des Panels entfernt, allerdings verstehe ich nicht wie ich das nun an den KeyHandler übergeben soll.
 

Robat

Top Contributor
Du kannst den Konstruktor von deinem KeyHandler ein Panel-Objekt mitgeben. Hier mal an einem kleinen Beispiel
Java:
class Main {
    public Main() {
        JFrame frame = new JFrame();
        ...
        Panel panel = new Panel();
        frame.addMouseListener(new KeyHandler(panel));
        frame.add(panel);
    }
}

class KeyHanlder implements ...{
    private Panel panel;
    public KeyHandler(Panel panel) {
        this.panel = panel;
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Transparente Bilder mit Graphics zeichnen Java Basics - Anfänger-Themen 17
Butzibu Image Loader lädt nicht alle Bilder: Java Basics - Anfänger-Themen 4
Schniffi Nur bestimmte Bilder aus einem Array auf Image Button anzeigen lassen Java Basics - Anfänger-Themen 3
S Aktuell beste Methode um zwei Bilder zu vergleichen..? Java Basics - Anfänger-Themen 1
W Java in Exe Datei umgewandelt, Ressourcen fehlen (Bilder und Audiodateien) Java Basics - Anfänger-Themen 1
B Nach dem kompilieren werden Bilder nicht mehr gefunden Java Basics - Anfänger-Themen 10
C Erste Schritte Bilder nach Export anzeigen Java Basics - Anfänger-Themen 0
B HTML File einlesen inkl. Bilder? Java Basics - Anfänger-Themen 2
S Bilder über Socket Senden Java Basics - Anfänger-Themen 1
S Bilder in .jar Datei laden Java Basics - Anfänger-Themen 10
S Bilder zoomen Java Basics - Anfänger-Themen 0
S Kann keine Bilder laden? Java Basics - Anfänger-Themen 9
CptK Interface Bilder über Bildschirm bewegen, bis der Abstand zum vorherigen zu groß wird Java Basics - Anfänger-Themen 13
I Projekt als .jar Datei speichern - Bilder werden nicht mehr angezeigt Java Basics - Anfänger-Themen 4
x-tshainge Java Bilder einfügen Java Basics - Anfänger-Themen 1
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
DaCrazyJavaExpert Bilder werden nicht angezeigt! Java Basics - Anfänger-Themen 6
L Verschiedene Bilder per Knopfdruck anzeigen lassen Java Basics - Anfänger-Themen 17
M Bilder in .Jar exportieren Java Basics - Anfänger-Themen 2
T Bilder in ausführbarer Jar Java Basics - Anfänger-Themen 11
F 2 wechselnde Bilder Java Basics - Anfänger-Themen 4
D Verzögerung des Erscheinens der Bilder Java Basics - Anfänger-Themen 5
L BufferdImage schwarzes Bild nach zusammenfügen zweier Bilder Java Basics - Anfänger-Themen 8
F Bilder aus jar einlesen Java Basics - Anfänger-Themen 10
J Bilder in Labels aktualisieren Java Basics - Anfänger-Themen 2
T jpeg Bilder zoomen.. Java Basics - Anfänger-Themen 2
C Bilder von Festplatte in Programm hochladen Java Basics - Anfänger-Themen 6
S Wo speicher ich bilder und sounds ab? Java Basics - Anfänger-Themen 4
C Threads Threaded Bilder bearbeiten Java Basics - Anfänger-Themen 8
K Bilder mit Eclipse exportieren Java Basics - Anfänger-Themen 1
J Slideshow zeigt bilder nicht an Java Basics - Anfänger-Themen 3
R Bilder aus Array als anklickbare Objekte Java Basics - Anfänger-Themen 3
K Export nach Jar mit Bilder Java Basics - Anfänger-Themen 2
L Wie bette ich Bilder in eine .jar ein? Java Basics - Anfänger-Themen 4
C Pfad für Bilder angeben Java Basics - Anfänger-Themen 11
B Bilder laden und drauf zugreifen[Eclipse] Java Basics - Anfänger-Themen 9
E ImageJ mehrere Bilder hintereinander bearteiten Java Basics - Anfänger-Themen 2
E HILFE Projekt für die Schule--> Bilder einfügen Java Basics - Anfänger-Themen 9
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3
H Bilder ohne Verlust speichern Java Basics - Anfänger-Themen 2
J Ladebalken anzeigen während Bilder geladen werden Java Basics - Anfänger-Themen 2
R Bilder positionieren Java Basics - Anfänger-Themen 5
D Erstellte Jar datei zeigt keine Bilder an Java Basics - Anfänger-Themen 5
4 4kb bilder Java Basics - Anfänger-Themen 5
Q Pfadangabe für zu speichernde Bilder Java Basics - Anfänger-Themen 2
B Bilder speichern (jpg, gif, jpg) Java Basics - Anfänger-Themen 4
S Bilder einladen Java Basics - Anfänger-Themen 26
B Aus einem Eclipse Projekt eine .jar - keine Bilder drin Java Basics - Anfänger-Themen 7
H Bilder im GUI einfügen Java Basics - Anfänger-Themen 12
G Bilder in Jar anzeigen lassen Java Basics - Anfänger-Themen 23
T Bilder in der jar-datei Java Basics - Anfänger-Themen 10
H Zahlen Bilder zuordnen möglich? Java Basics - Anfänger-Themen 4
K BufferedImage, Bilder laden Java Basics - Anfänger-Themen 15
J Bilder von Objekten Java Basics - Anfänger-Themen 3
A Bilder in Eclipse speichern Java Basics - Anfänger-Themen 7
J Mit JS, Text und Bilder von Webseite verändern... Java Basics - Anfänger-Themen 10
S Input/Output Text und Bilder laden Java Basics - Anfänger-Themen 5
T Bilder werden in Jar nicht geladen Java Basics - Anfänger-Themen 10
S Java Web Start lädt keine Bilder Java Basics - Anfänger-Themen 2
T Buttons (auf denen bilder sind) random vertauschen Java Basics - Anfänger-Themen 11
D Bilder Laden, mit Eclipse ok, .jar nicht Java Basics - Anfänger-Themen 5
F Bilder aus .jar datei laden Java Basics - Anfänger-Themen 1
M Applet soll Bilder aus Ordner lesen Java Basics - Anfänger-Themen 9
F Bilder enfügen und Bewegen Java Basics - Anfänger-Themen 6
I Drehbare bilder in 3D Java Basics - Anfänger-Themen 4
M Bilder laden und zeichnen Java Basics - Anfänger-Themen 3
T JTextPane - setText kein kein neuladen der Bilder? Java Basics - Anfänger-Themen 8
A Bilder in Eclipse Java Basics - Anfänger-Themen 8
xehpuk Ordner "Eigene Bilder" ansteuern Java Basics - Anfänger-Themen 3
N Bilder Objekten zuweisen Java Basics - Anfänger-Themen 2
J Bilder auf Bilder zeichnen Java Basics - Anfänger-Themen 8
N jar kann Bilder nicht finden(?) Java Basics - Anfänger-Themen 4
S Spiel automat -Bilder vergleichen Java Basics - Anfänger-Themen 3
R Gif Bilder flimmern Java Basics - Anfänger-Themen 10
P Signiertes JAR aber keine Bilder o0 Java Basics - Anfänger-Themen 6
S Bilder der Diashow werden in anderen Bildern angezeigt Java Basics - Anfänger-Themen 3
G Bilder aus dem Projekt Verzeichnis werden n. angezeigt Java Basics - Anfänger-Themen 7
C Bilder von Server zu Server kopieren über Webdav(Sardine) Java Basics - Anfänger-Themen 5
K Bilder "langsam" laden Java Basics - Anfänger-Themen 4
FreddyStepp Bilder zusammenfügen Java Basics - Anfänger-Themen 7
B GUI-Bilder einfügen Java Basics - Anfänger-Themen 40
S Bilder vergleichen Java Basics - Anfänger-Themen 6
B Kann man im Thread Bilder laden? Java Basics - Anfänger-Themen 8
S Wo speichere ich Bilder für Applets (Netbeans) Java Basics - Anfänger-Themen 5
J Mehrere Bilder laden Java Basics - Anfänger-Themen 6
D Bilder einfügen Java Basics - Anfänger-Themen 8
W Bilder einfügen? Java Basics - Anfänger-Themen 2
S Mehrere Bilder bewegen Java Basics - Anfänger-Themen 5
B Bilder zeichnen Java Basics - Anfänger-Themen 2
D Bilder in JFrame laden Java Basics - Anfänger-Themen 8
L Frage bzgl. Threads beim Bilder laden Java Basics - Anfänger-Themen 3
S Bilder in AWT Java Basics - Anfänger-Themen 7
J java applets bilder? Java Basics - Anfänger-Themen 11
manunana89 Bilder auf JFrame/beste Möglichkeit??? Java Basics - Anfänger-Themen 5
K Bilder werden nicht angeziegt !!! Java Basics - Anfänger-Themen 2
max56 Bilder ausgeben Java Basics - Anfänger-Themen 21
K Bilder/Dateien aus package einlesen Java Basics - Anfänger-Themen 14
N Bilder verkleiner ausgeben Java Basics - Anfänger-Themen 6
G Bilder und Kattegorien Java Basics - Anfänger-Themen 4
S JTable - Bilder anzeigen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben