Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

LsFan

Frischling

  • »LsFan« ist der Autor dieses Themas

Beiträge: 29

Beruf: Der Böse Admin sein xD

  • Private Nachricht senden

1

27.09.2013, 15:24

Java JFrame Hintergrund wird nicht schwarz!!!

Hallo,



in meinem Java Game kommt man über das Hauptmenüfenster zum Spielfenster. Und da liegt auch schon das Problem. In diesem Fenster habe ich über die Klasse Raumschiff ein Raumschiff gezeichnet. Also RaumSchiffMaler.drawImage(RaumSchiffBild, 0, 0, null);

so und wenn ich dann in meiner JFrameklasse Spielfenster den Hintergrund mit SpielFenster.getContentPane().setBackGround(Color.BLACK); auf schwarz setzten will (java.awt.Color ist importiert) und ich das dann starte, wird das Fenster für ca. 0,1 Sekunde schwarz, dann erscheint das Raumschiff und dann ist der Hintergrund wieder Windows Farbe. Also

Wie bleibt der Hintergrund schwarz???



lg LsFan :):)
(\ /) | Dies ist Hase.
(^.^) | <-- Bitte kopiere Hase in deine Signatur
(*_*) | und hilf ihm, die Weltherrschaft an sich zu reißen.

LsFan

Frischling

  • »LsFan« ist der Autor dieses Themas

Beiträge: 29

Beruf: Der Böse Admin sein xD

  • Private Nachricht senden

2

27.09.2013, 15:33

GameWindowklasse:


Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package game.explorer.data;

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Color;import java.awt.Graphics; 
import javax.swing.JFrame; 
public class GameWindow { 

public static void CreateWindow() 
{JFrame GameWindow = new JFrame(); 
GameWindow.setTitle("The Explorer - by LSP™"); GameWindow.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); 
GameWindow.setSize(1000, 800);GameWindow.setLocationRelativeTo(null); 
GameWindow.setResizable(false);
//GameWindow.add(new BackGround()); // wäre der HintergrundGameWindow.setVisible(true); 
 GameWindow.add(new SpaceShip()); 
}
 public GameWindow() 
{
//per Druck auf E-Taste InGame Menü öffnen!
}
 
}


SpaceShipklasse

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
package game.explorer.data;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;import javax.swing.Timer; 
public class SpaceShip extends JPanel implements ActionListener{ 
Image SpaceShipImage; 
int ImageFrames = 1;Timer MoveFrames; 
 boolean MoveAllowed = true; 
 int Key = 0; 
 int ShipY = 0;int ShipX = 0; 
 
int YShip = 376;int XShip = 476; 
 public SpaceShip() 
{setFocusable(true); 
ImageIcon Icon = new ImageIcon((getClass().getResource("SpaceShip1.png")));SpaceShipImage = Icon.getImage();System.out.println("SpaceShipImage1 was initialized successfully!\n"); 
 addKeyListener(new AL()); 
 
MoveFrames = new Timer(5, this);MoveFrames.start(); 
}
 
public void actionPerformed(ActionEvent e) //Code vom Timer
{
Move();
}
 public void paint (Graphics g) 
{super.paint(g); 
Graphics2D Draw = (Graphics2D)g;Draw.drawImage(SpaceShipImage, XShip, YShip, null); 
}
 public void Move() 
{YShip += ShipY;XShip += ShipX; 
 if (MoveAllowed == false) 
{
ShipX = 0;ShipY = 0; 
}
 
repaint();
}
 
public class AL extends KeyAdapter //Tastenaktionenklasse
{public AL() 
{
 
}
 public void keyPressed(KeyEvent e) 
{Key = e.getKeyCode();if (MoveAllowed == true) 
{if (Key == KeyEvent.VK_W) 
{ShipY = -2; 
}
 if (Key == KeyEvent.VK_S) 
{ShipY = 2; 
}
 if (Key == KeyEvent.VK_A) 
{ShipX = -2; 
}
 if (Key == KeyEvent.VK_D) 
{ShipX = 2; 
}
}
}
 public void keyReleased(KeyEvent e) 
{if (Key == KeyEvent.VK_W || Key == KeyEvent.VK_S) 
{ShipY = 0; 
}
 if (Key == KeyEvent.VK_A || Key == KeyEvent.VK_D) 
{ShipX = 0; 
}
}
}
 
}


HauptFensterklasse:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package game.explorer.data;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;import java.io.*; 
public class MainMenu extends JFrame implements ActionListener{ 
private JButton ShowGame; 
private JButton ShowOptions;private JButton ShowCredits;private JButton CloseWindow; 
 public static void main (String[] args) throws IOException 
{
 
CreateWindow();
 BufferedReader CheatReader = new BufferedReader(new InputStreamReader(System.in)); 
String Cheat = CheatReader.readLine();
 if (Cheat.equalsIgnoreCase("/end")) 
{
System.exit(0);
}else if (Cheat.equalsIgnoreCase("/enableButtons")) 
{
 
}
}
 public static void CreateWindow() 
{MainMenu Menu = new MainMenu("The Explorer - Hauptmenü"); 
Menu.setSize(500, 500);Menu.setDefaultCloseOperation(JFrame.NORMAL); 
Menu.setLocationRelativeTo(null);Menu.setResizable(false); 
Menu.add(new BackGround());Menu.getContentPane().setBackground(Color.BLACK);Menu.setVisible(true); 
 System.out.println("Window *MainMenu* was created successfully!\n"); 
}
 public MainMenu (String Title) 
{super (Title); 
 ShowGame = new JButton("Spiel starten"); 
ShowGame.setBounds(125,110, 250, 40);ShowGame.addActionListener(this);add(ShowGame); 
 System.out.println("Button *ShowGame* was drawn successfully!\n"); 
 
ShowOptions = new JButton("Optionen");ShowOptions.setBounds(125,170, 250, 40); 
ShowOptions.addActionListener(this);add(ShowOptions); 
 System.out.println("Button *ShowOptions* was drawn successfully!\n"); 
 ShowCredits = new JButton("Credits"); 
ShowCredits.setBounds(125,230, 250, 40);ShowCredits.addActionListener(this);add(ShowCredits); 
 System.out.println("Button *ShowCredits* was drawn successfully!\n"); 
 
CloseWindow = new JButton("Beenden");CloseWindow.setBounds(125,290, 250, 40); 
CloseWindow.addActionListener(this);add(CloseWindow); 
 System.out.println("Button *ShowGame* was drawn successfully!\n"); 
 
}
 public void actionPerformed(ActionEvent e) { 
 if (e.getSource() == ShowGame) 
{GameWindow Game = new GameWindow(); 
Game.CreateWindow();System.out.println("Game was started successfully!\n"); 
}
 if (e.getSource() == ShowOptions) 
{
//Optionen anzeigen
}
 if (e.getSource() == ShowCredits) 
{
//Credits zeigen
}
 if (e.getSource() == CloseWindow) 
{
System.exit(0);
}
 
}
 
 
}
(\ /) | Dies ist Hase.
(^.^) | <-- Bitte kopiere Hase in deine Signatur
(*_*) | und hilf ihm, die Weltherrschaft an sich zu reißen.

Squareys

Frischling

Beiträge: 35

Wohnort: Konstanz

Beruf: VR Development Lead bei Vhite Rabbit.

  • Private Nachricht senden

3

29.09.2013, 14:06

GameWindow.setVisible(true); evtl?

Gits eigentlich keine Möglichkeit, den Code mit Highlighting und Formatierung im Forum einzufügen?
Wenn nein, würde ich dir Pasteall.org empfehlen. Bei dem Chaos und der Menge an Code hat
eher niemand Lust sich damit zu beschäftigen ;)

Werbeanzeige