2D-Grafik Flackerndes Hintergrund

19Beat99

Mitglied
Hallo

Ich habe begonnen ein Jump and Run zu programmieren. Das Ziel von dem was ich bis jetzt programmiert habe ist, dass sich der Hintergrund beim drücken der Pfeiltasten nach rechts und nach links bewegt. Das funktioniert auch soweit. Jedoch flackert das Bild und ich finde nicht heraus an was es liegt.
Vielen Dank für eure Hilfe schon mal im voraus.



PS: Ich bin mir nicht ganz sicher ob ich das mit dem Code hochladen so richtig gemacht habe. Falls nicht wäre ich froh wenn mir jemand erklären kann wie man es richtig macht. Ich habe das noch nie gemacht.

Java:
/**
*
* @author Beat
*
*/
public class Start {




public static void main(String[] args) {





GUI G = new GUI();




}

}








import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Label;
import java.awt.RenderingHints;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;

public class GUI_Jump_and_Run extends JFrame implements ActionListener{

Image img1;
Image img2;
int bewegung;
BufferedImage buffered;

public GUI_Jump_and_Run() {

setVisible(true);
setSize(1300, 780);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setTitle("Jump and Run");
setLayout(null);
setLocationRelativeTo(null);
setFocusable(true);

ImageIcon u = new ImageIcon(getClass().getResource("Bild.jpg"));
img1 = u.getImage();


ImageIcon f = new ImageIcon(getClass().getResource("figur.png"));
img2 = f.getImage();


addKeyListener(new Steuerung());

var.time = new Timer(6, this);
var.time.start();


}


public void paint (Graphics g) {

super.paint(g);


Graphics2D f2 = (Graphics2D)g;

if(var.lauf*-1==var.nx2) { //Rückwerts gehen

System.out.println(var.lauf);
var.nx-=var.längebild;
var.nx2-=var.längebild;
System.out.println(var.nx2);
}
if(var.lauf*-1==var.nx) { //Vorwerts gehen
var.nx+=var.längebild;
var.nx2+=var.längebild;
var.nx3+=var.längebild;
}

f2.drawImage(img1,var.lauf+var.nx-1300,0,null);
f2.drawImage(img1,var.lauf+var.nx,0,null);
f2.drawImage(img1,var.lauf+var.nx2-var.längebild,0,null);
//f2.drawImage(img1, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer)
//f2.drawImage(img2, 20, 20, null);


}


@Override
public void actionPerformed(ActionEvent e) {
lauf();
repaint();

}

public static void lauf() {


if (var.lauf <0){
var.lauf += var.bewegenBild;



}
else {
var.lauf = -1;

}

}

}






import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class Steuerung extends KeyAdapter{


int x_bewegung;


public void keyPressed(KeyEvent e) {


if(e.getKeyCode()==KeyEvent.VK_LEFT) {

var.bewegenBild = 1;



}

if(e.getKeyCode()==KeyEvent.VK_RIGHT) {

var.bewegenBild = -1;

}




}
public void keyReleased(KeyEvent e) {

if (e.getKeyCode()!=KeyEvent.VK_LEFT || e.getKeyCode()!=KeyEvent.VK_RIGHT){
var.bewegenBild = 0;

}






}}









import java.awt.Image;

import javax.swing.ImageIcon;
import javax.swing.Timer;

public class var {
static int bewegenBild;
static javax.swing.JPanel JPanel;
static int lauf=-1;
static Timer time;
static int längebild = 1300;
static int rechnen;
static int nx=1300;
static int nx2=0;
static int nx3=-1300;
public var() {


}}
 

Anhänge

  • Bild.jpg
    Bild.jpg
    55,2 KB · Aufrufe: 5
  • figur.png
    figur.png
    16,9 KB · Aufrufe: 5

mihe7

Top Contributor
Erstmal ein paar Anmerkungen:
  1. das Wichtigste vorab: vergiss das Tutorial, aus dem Du den Code hast
  2. halte Dich an die Benennungskonventionen von Java: Namen von Variablen, Methoden und Parametern in lowerCamelCase, Typbezeichner in UpperCamelCase
  3. verwende aussagekräftige Bezeichner: img1, u, f, img2 -> Tonne
Die bevorzugte Variante, hier Code zu posten: auf die drei Punkte neben dem Smiley -> Code -> Java -> Quelltext inkl. Einrückungen ins Textfeld kopieren. Vorgang für jede Datei wiederholen.

Wenn es viel Code ist, kannst Du ein Zip hochladen oder natürlich auch woanders online stellen und darauf verlinken.

Zur Frage: wenn Du nicht direkt im JFrame sondern in einer Komponente zeichnest und dort paintComponent statt paint überschreibst, erhältst Du automatisch double buffering. Willst Du weiterhin im JFrame zeichnen, musst Du Dich selbst darum kümmern, damit es nicht flackert.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Flackerndes Window beim DnD AWT, Swing, JavaFX & SWT 37
frager2345 Bild aus Dateien lesen und als Hintergrund verwenden AWT, Swing, JavaFX & SWT 2
ralfb1105 JavaFX HTTP Download task im Hintergrund innerhalb GUI AWT, Swing, JavaFX & SWT 70
Drachenbauer Swing Wie ändere ich den Hintergrund vom Anzeigefeld einer JComboBox, die nicht zum Hineinschreiben offen steht? AWT, Swing, JavaFX & SWT 32
A Fehler beim Hintergrund AWT, Swing, JavaFX & SWT 17
C Java Hintergrund funktioniert nicht AWT, Swing, JavaFX & SWT 9
A Bilder als Hintergrund AWT, Swing, JavaFX & SWT 2
BobbGott durchsichtiges JTextField mit Hintergrund AWT, Swing, JavaFX & SWT 12
L JPanel zeichnet im Konstrukter erzeugten Hintergrund nicht AWT, Swing, JavaFX & SWT 10
P Jframe Bild einfügen, Hintergrund Farbe ändern, und Button schrift Größe ändern AWT, Swing, JavaFX & SWT 2
T Hintergrund für GUI AWT, Swing, JavaFX & SWT 1
I 2D-Grafik Bilder Eingefügt, button jetzt im Hintergrund AWT, Swing, JavaFX & SWT 2
F JTable Zellen-Hintergrund ändern AWT, Swing, JavaFX & SWT 7
D JButton - Nur Icon anzeigen / transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
H Textfield bleibt im Hintergrund AWT, Swing, JavaFX & SWT 2
E JTable Hintergrund von geklickter Zelle ändern AWT, Swing, JavaFX & SWT 2
wolfgang63 JavaFX Transparenter Hintergrund aber sichtbare Buttons AWT, Swing, JavaFX & SWT 6
F 2D-Grafik Den Hintergrund loopen AWT, Swing, JavaFX & SWT 3
V LookAndFeel JSpinner Hintergrund Farbe mit Nimbus LaF AWT, Swing, JavaFX & SWT 0
O 2D-Grafik Bild abgeschnitten nach Rotation mit Affine Transform und Hintergrund Schwarz AWT, Swing, JavaFX & SWT 8
O Hintergrund von AffineTransfom (rotation) ändern AWT, Swing, JavaFX & SWT 0
D paintComponent() mit transparentem Hintergrund. AWT, Swing, JavaFX & SWT 0
C JFrame paint ohne hintergrund nutzen AWT, Swing, JavaFX & SWT 6
A Swing Paint mit Button Clear den Hintergrund säubern um wieder zeichnen zu können AWT, Swing, JavaFX & SWT 2
S Swing, Button benutzen zum Hintergrund wechseln AWT, Swing, JavaFX & SWT 3
N Swing microba - DatePicker: Feld-Hintergrund anpassen AWT, Swing, JavaFX & SWT 2
M Tastatureingabe im Hintergrund (JTable) AWT, Swing, JavaFX & SWT 2
B Hintergrund laden AWT, Swing, JavaFX & SWT 3
B Swing Zähler im Hintergrund falsch berechnet - Warum? AWT, Swing, JavaFX & SWT 3
J JButton Hintergrund AWT, Swing, JavaFX & SWT 5
L Gradient Hintergrund malen und durchscheinen lassen AWT, Swing, JavaFX & SWT 8
K Swing JTable Text im Hintergrund einer leeren Tabelle AWT, Swing, JavaFX & SWT 3
L Beim Neuzeichnen einer Swing GUI kurz Schwarzer Hintergrund AWT, Swing, JavaFX & SWT 8
D Swing Probleme bei transparenten Hintergrund im JTextField AWT, Swing, JavaFX & SWT 6
J Swing Malen auf JPanel mit transparentem Hintergrund AWT, Swing, JavaFX & SWT 21
S 2D-Grafik Bild bleibt im Hintergrund bei Diashow AWT, Swing, JavaFX & SWT 3
D Applet hintergrund wird nicht weiß AWT, Swing, JavaFX & SWT 2
B JList transparenter Hintergrund AWT, Swing, JavaFX & SWT 2
J Speichern, Event, Hintergrund getAppletContext AWT, Swing, JavaFX & SWT 2
E Swing JPanel mit Hintergrund AWT, Swing, JavaFX & SWT 3
L Bilder im JPanel als Hintergrund - Swing AWT, Swing, JavaFX & SWT 2
kniffel GUI-Applet JTable füllt Hintergrund völlig aus AWT, Swing, JavaFX & SWT 4
J Hintergrund Label-Frame AWT, Swing, JavaFX & SWT 3
A Hintergrund von einem Frame ändern AWT, Swing, JavaFX & SWT 3
T Hintergrund AWT, Swing, JavaFX & SWT 4
T Hintergrund für 3D Erde AWT, Swing, JavaFX & SWT 4
G 2D-Grafik BufferedImage Hintergrund immer schwarz AWT, Swing, JavaFX & SWT 4
P Swing Zeichnung auf Tab im Hintergrund wird nicht gezeichnet AWT, Swing, JavaFX & SWT 3
J Label mit transparentem hintergrund - geht das? AWT, Swing, JavaFX & SWT 21
B AWT Bild als Hintergrund im Applet AWT, Swing, JavaFX & SWT 2
R Bedeckter Hintergrund AWT, Swing, JavaFX & SWT 17
D Komponenten um weitere Hintergrund- bzw. Vordergrundfarbe erweitern AWT, Swing, JavaFX & SWT 11
M JFrame (Mausrad, Hintergrund) AWT, Swing, JavaFX & SWT 13
Dragonfire Swing Hintergrund aller Komponenten verändern AWT, Swing, JavaFX & SWT 2
DStrohma Swing JPanel mit Bild als Hintergrund AWT, Swing, JavaFX & SWT 2
B Swing Image als Hintergrund im JInternalFrame - Problem AWT, Swing, JavaFX & SWT 3
N GridBagLayout, leere grids (Hintergrund) transparent? AWT, Swing, JavaFX & SWT 3
J Swing JPanel mit Hintergrund zeigt componente nicht AWT, Swing, JavaFX & SWT 6
E einfache Frage:warum ist Hintergrund grau ? AWT, Swing, JavaFX & SWT 24
algorismi JCompnent mit transparentem Hintergrund AWT, Swing, JavaFX & SWT 4
T Schließen eines JDialogs setzen den JFrame in den Hintergrund AWT, Swing, JavaFX & SWT 2
J CellRenderer einzelne zellen Hintergrund AWT, Swing, JavaFX & SWT 9
R JTable Hintergrund der Zeile abhängig von Inhalt einer Zelle verändern AWT, Swing, JavaFX & SWT 3
E Progress Bar mit Bild als Hintergrund AWT, Swing, JavaFX & SWT 2
N Swing Hintergrund Bild in JAR Datei AWT, Swing, JavaFX & SWT 2
N im fenster ein hintergrund bild einfügen AWT, Swing, JavaFX & SWT 18
A Swing Mit Graphics2D auf transparentem Hintergrund zeichnen AWT, Swing, JavaFX & SWT 7
A Hintergrund erstellen AWT, Swing, JavaFX & SWT 13
J Layer von JLayeredPane unsichtbar durchsichtig in den Hintergrund AWT, Swing, JavaFX & SWT 5
T GridLayout Zeilen Hintergrund AWT, Swing, JavaFX & SWT 5
P Swing JComboBox beschädigt hintergrund AWT, Swing, JavaFX & SWT 4
S JButton - Hintergrund verändern AWT, Swing, JavaFX & SWT 7
J Fensterrand überdeckt Hintergrund AWT, Swing, JavaFX & SWT 9
K JTable hintergrund AWT, Swing, JavaFX & SWT 12
SebSnake Animiertes GIF auf JPG Hintergrund darstellen? AWT, Swing, JavaFX & SWT 3
G Label auf Panel auf Panel mit Grafiken als Hintergrund (awt) AWT, Swing, JavaFX & SWT 7
G TextField im Hintergrund AWT, Swing, JavaFX & SWT 2
O Zweifarbiger Hintergrund in einer TableCell? AWT, Swing, JavaFX & SWT 4
R Bilder als Hintergrund für Swing - Komponenten AWT, Swing, JavaFX & SWT 3
R HTML Hintergrund für Swing - Componenten AWT, Swing, JavaFX & SWT 2
0 JTable - Hintergrund Tabellen statt Grau AWT, Swing, JavaFX & SWT 5
V JButton in Hintergrund zwingen? AWT, Swing, JavaFX & SWT 14
G Hintergrund AWT, Swing, JavaFX & SWT 5
M Hintergrund Transparent machen? AWT, Swing, JavaFX & SWT 3
F Farbe für den Hintergrund eine BorderLayout-Teils AWT, Swing, JavaFX & SWT 5
C Fenster rücken beim Drucken in den Hintergrund AWT, Swing, JavaFX & SWT 6
B Programm im Hintergrund - JFrame AWT, Swing, JavaFX & SWT 5
D Robot: Screenshot vom Desktop Hintergrund möglich ? AWT, Swing, JavaFX & SWT 3
F JDialog im Hintergrund lassen AWT, Swing, JavaFX & SWT 2
G schwarzen hintergrund von png transparent machen AWT, Swing, JavaFX & SWT 2
J jlabels überlappen / vorder-hintergrund AWT, Swing, JavaFX & SWT 2
G hintergrund farbe vom flow layout ändern AWT, Swing, JavaFX & SWT 2
S Button im Hintergrund AWT, Swing, JavaFX & SWT 12
foobar JTable im Hintergrund drucken AWT, Swing, JavaFX & SWT 2
B Hintergrund eines JPanels AWT, Swing, JavaFX & SWT 16
M Bild als Hintergrund anzeigen? AWT, Swing, JavaFX & SWT 12
S Hintergrund JTable AWT, Swing, JavaFX & SWT 9
G hintergrund von JFrame/Container transparent machen AWT, Swing, JavaFX & SWT 2
R JMenu + Farbe von Hintergrund AWT, Swing, JavaFX & SWT 2
K icons sauber anzeigen (an hintergrund angepasst) AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben