AWT Schiffeversenken-Koordinatensystem wird nicht richtig angezeigt.

Status
Nicht offen für weitere Antworten.

Saliver

Aktives Mitglied
Salut Jungs,
seit gut einem Monat versuche ich mein Schiffeversenken-Spiel grafisch zu verschönern.
Anscheinend bin ich mit meinem bisherigen Code kognitiv zu früh abgebogen, weil das Koordinatensystem nicht richtig angezeigt wird bzw. das zweite fehlt komplett.

Ich hoffe ihr könnt mir weiterhelfen.

Code:
package de.alka1de.schiffeversenken;

    import java.awt.*;
    import java.awt.event.*;

    //Realisierung der Grafik
    class Gui extends Frame implements ActionListener {

	//Rahmen des Feldes
    	private static  final int frame_x = 600;
    	private static  final int frame_y = 400;
    	private static MenuBar menuleiste;
    	private static Menu menu1, menu2;
    	private static MenuItem item1, item2, item3;
    	//anlegen eines Bildes
    	
    	Panel imagePanel = new APanel();
    	    	
    	public Gui() 
    	{	
    		//Überschrift im Rahmen
    		super("ULTIMATE SCHIFFE VERSENKEN");
    		
    		//Menüleiste
    		menuleiste = new MenuBar();
    		
    		//mit den Menüpunkten Spiel und Hilfe
    		menu1 = new Menu ("Spiel");
    		
    		//Spiel hat zwei Untermenüpunkte Start (vorgesehen, aber funktioniert nicht!!!!!!) und Beenden
    		item1 = new MenuItem ("Start");
    		item2 = new MenuItem ("Beenden");
    		
    		//Hilfe hat das Untermenü Spielregeln (vorgesehen, aber funktioniert nicht !!!!!!!!!)
    		menu2 = new Menu("Hilfe");
    		
    		item3 = new MenuItem ("Spielregeln");
    	
    		
    		//Action Listener wird hinzugefügt
    		item2.addActionListener(this);
    	
    			
    		addWindowListener //schließt Fenster bei Klick aufs Kreuz rechts oben
    		(
    			new WindowAdapter() 
    			{
    				public void windowClosing (WindowEvent e) 
    				{
    					System.exit(0); 
    				}
    			}
    		);

    		//Hinzufügen des Untermenüs 1 (Start) zum ersten Hauptmenü (Spiel)
    		menu1.add(item1);
    		//Hinzufügen des Untermenüs 2 (Beenden) zum ersten Hauptmenü (Spiel)
    		menu1.add(item2);

    		//Hinzufügen des Untermenüs 3 (Spielregeln) zum zweiten Hauptmenü (Hilfe)
    		menu2.add(item3);
    	
    	    //Hinzufügen der Haptmenüs Spiel und Hilfe zur Menüleiste
    		menuleiste.add(menu1);
    		menuleiste.add(menu2);
    	    
    		//Setzen der Menüleiste in den Frame
    		this.setMenuBar(menuleiste);
    		
    	    //die definiere ich die größe des Frames
    		setSize(frame_x, frame_y);
    		this.add(imagePanel);
    		
    		//this.pack();
    	}
    	
    	//Updaten der Grafik
    	public void update(Graphics g) 
    	{
    		paint(g);
    	}
    	
    	//action listener, funktioniert noch nicht!
    	
    	
    	public void actionPerformed(ActionEvent e)
    	{
    		//variable
    		String action;
    		
    		//get Action
    		action = e.getActionCommand();
    		
    		//Ausführen des Befehls, der zur Aktion gehört
    		if (action.equals("Beenden"))
    		{
    			System.exit(0);
    		}
    		else if (action.equals("Start"))
    		{
    			//funktioniert noch nicht, sollte eigentlich den Spielstart ausführen
    		}
    	}
    }
 
S

SlaterB

Gast
und wie soll man dazu irgendwas sagen ohne Erklärungen?
in deinem Code ist zunächst mal ganz gewiss nichts von ZWEI Koordinatensystemen zu sehen,
ganz entfernt könnte man vermuten, dass das EINE APanel eines dieser Koordinatensysteme ist,

wenn aber die ganze Information nur aus 'es gibt eine Klasse APanel' besteht,
dann kann man auch zum zweiten Punkt, zu dessen falscher Anzeige, wenig sagen ;)
 

Saliver

Aktives Mitglied
Sorry, hatte euch vergessen die APanel klasse zu zeigen.

Code:
package de.alka1de.schiffeversenken;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Panel;

public class APanel extends Panel
{
	Image offscreenImg;
    	public APanel(){
    	    setSize(200, 100);
    	}
    	
    	
    	
 	//Zeichnen der beiden Schiffefelder
	public void paint(Graphics g)
	{	
		//Schriftart Arial, Schrifftgröße 16
		Font f = new Font("Arial", Font.PLAIN, 16);
		//Offscreen-Image anlegen
		
		

		offscreenImg = createImage(300, 500);
		Graphics offscreen = offscreenImg.getGraphics();
		offscreen.setFont(f);
		
		//Schriftfarbe schwarz
		offscreen.setColor(Color.black);
		
		//Beschriftung der x-Koordinate des ersten Feldes
		offscreen.drawString("0  1   2   3   4   5  6  7   8   9",37,55);
		
		//Zeichnen des ersten Quadrates
		offscreen.drawRect(30,60,200,200);
		
		//senkrechte Zwischenlinien
		for (int i=1 ; i<=9; i++)
		{
			offscreen.drawLine(30+i*20,60,30+i*20,260);
		}
		
		//waagerechte Zwischenlinien
		for(int i=1 ; i<=9; i++)
		{
			offscreen.drawLine(30,60+i*20,230,60+i*20);
		}
		
		
		//Zeichnen des zweiten Quadrates	
		offscreen.drawString("0  1   2   3   4   5  6  7   8   9",307,55);
		
		//senkrechte Zwischenlinien
		offscreen.drawRect(300,60,200,200);
		for (int i=1 ; i<=9; i++)
		{
			offscreen.drawLine(300+i*20,60,300+i*20,260);
		}
		
		//waagerechte Zwischenlinien
		for(int i=1 ; i<=9; i++)
		{
			offscreen.drawLine(300,60+i*20,500,60+i*20);
		}
		
		//Bezeichnung der y-Koordinate zwischen den beiden Feldern (für beide gleichzeitig)
		offscreen.drawString("0",265,80);
		offscreen.drawString("1",265,100);
		offscreen.drawString("2",265,120);
		offscreen.drawString("3",265,140);
		offscreen.drawString("4",265,160);
		offscreen.drawString("5",265,180);
		offscreen.drawString("6",265,200);
		offscreen.drawString("7",265,220);
		offscreen.drawString("8",265,240);
		offscreen.drawString("9",265,260);
		
		//Schriftfarbe schwarz
		offscreen.setColor(Color.black);
		// Offscreen image auf Screen übertragen
		g.drawImage(offscreenImg, 0, 0, this); 
	}
	

}


Bevor ich eine Änderung vorgenommen habe, waren im Fenster zwei Koordinatensyste.
Nun habe ich das Gefühl, dass das APanel das zweite Überdeckt, nur die Achsenbezeichnung ist sichtbar.

Gruß,
Sali
 
S

SlaterB

Gast
es gibt nur ein Koordinatensystem, oder wo sollte das zweite sein?
wenn du zwei haben willst, dann schreibe z.B. statt
> this.add(imagePanel);


this.add(imagePanel, BorderLayout.WEST);
this.add(new APanel(), BorderLayout.EAST);

beim BorderLayout gibts aber zu bedenken, dass im Bereich WEST und EAST die PrefererredSize sehr wichtig ist,
du hast in APanel
> setSize(200, 100);

das ist erstens zu wenig und zweitens ist die size meist irrelevant, schreibe
setPreferredSize(new Dimension(300, 500));

dann sind zwei Koordinatensystem zu sehen,
und was ist bei denen falsch dargestellt? die senkrechten Zahlen 0-9 sind etwas weit weg, aber das kann man doch korrigieren
 

Saliver

Aktives Mitglied
Hallo Slater,

hab einbisschen dran gebastelt und es hat eigentlich ganz gut geklappt.
Weiß du vielleicht wie ich die Zahlen auf der Y-Achse näher an das Koordinatensystem kriege?

Danke für die bisherige Müh.

Gruß,
Sali
 
S

SlaterB

Gast
offscreen.drawString("0",265,80);
offscreen.drawString("1",265,100);
....

->

offscreen.drawString("0",235,80);
offscreen.drawString("1",235,100);
...

> versuche ich mein Schiffeversenken-Spiel grafisch zu verschönern.

in dem Satz ist das 'mein' wohl geflunkert, wenn du so wenig darüber weißt ;)
 

Saliver

Aktives Mitglied
Das hat nichts mit flunkern zu tun, ich programmiere das Spiel ja hier nicht alleine aus jux und dollerei, es ist eine Semesterarbeit mit 3 weiteren Studenten.

Aber danke für den schnellen Tipp mit dem offscreen. Habe es nun hingekriegt.

Gruß,
Saliver
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Schiffeversenken SWT AWT, Swing, JavaFX & SWT 4
M Problem bei Schiffeversenken-Spiel AWT, Swing, JavaFX & SWT 4
L JavaFX KoordinatenSystem AWT, Swing, JavaFX & SWT 1
M Koordinatensystem für Projektorientiertes Arbeiten AWT, Swing, JavaFX & SWT 2
A Swing Koordinatensystem wird gezeichnet verschwindet aber und die Einteilungen bleiben nicht bestehen AWT, Swing, JavaFX & SWT 5
S Koordinatensystem wird nicht gezeichnet AWT, Swing, JavaFX & SWT 5
J Koordinatensystem AWT, Swing, JavaFX & SWT 2
S Koordinatensystem AWT, Swing, JavaFX & SWT 6
El_Lobo Swing bei Update von Graphik Koordinatensystem nicht jedesmal neu zeichnen AWT, Swing, JavaFX & SWT 2
K OpenGL koordinatensystem AWT, Swing, JavaFX & SWT 7
M Graphics auf JFrame Koordinatensystem AWT, Swing, JavaFX & SWT 3
U Swing KSKB: JComboBox Koordinatensystem AWT, Swing, JavaFX & SWT 3
L SWT Draw2d und Gef Koordinatensystem und Gitternetz? AWT, Swing, JavaFX & SWT 5
L SWT Koordinatensystem in Swt? AWT, Swing, JavaFX & SWT 4
C AWT Graphic 2D Frage zum Koordinatensystem AWT, Swing, JavaFX & SWT 6
M Aktuelle Mausposition im Koordinatensystem AWT, Swing, JavaFX & SWT 3
G Werte in Koordinatensystem zeichnen AWT, Swing, JavaFX & SWT 11
H Darstellung einer Kurve im Koordinatensystem AWT, Swing, JavaFX & SWT 8
L Java 3d Koordinatensystem AWT, Swing, JavaFX & SWT 3
D JPanel Koordinatensystem -> Ursprung verändern. AWT, Swing, JavaFX & SWT 2
C Koordinatensystem drehen AWT, Swing, JavaFX & SWT 3
G Linien in ein Koordinatensystem zeichen AWT, Swing, JavaFX & SWT 7
H funktionen in ein koordinatensystem zeichen AWT, Swing, JavaFX & SWT 5
P Methode wird nicht überprüft AWT, Swing, JavaFX & SWT 4
P paintComponent-Methode wird dauernd neu aufgerufen AWT, Swing, JavaFX & SWT 2
G JavaFX LineChart Datenpunkte Markierung wird abgeschnitten AWT, Swing, JavaFX & SWT 1
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
Telisti Javafx Image wird nicht richtig integiert AWT, Swing, JavaFX & SWT 8
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
N €-Zeichen wird nicht akzeptiert AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
S Javafx getResource-Pfad wird nicht erkannt AWT, Swing, JavaFX & SWT 7
U Warum wird zweimal die Affinetransformation estellt (2Dgraphics, Java)? AWT, Swing, JavaFX & SWT 31
DonBronson Gezeichnetes Objekt verschwindet nachdem erneut gezeichnet wird AWT, Swing, JavaFX & SWT 8
ProggersWorld JavaFX TextArea BackgroundImage wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
M Bild wird nicht geladen obwohl sie gefunden wird AWT, Swing, JavaFX & SWT 0
M Nach Export als Runnable Jar wird css nicht merh gefunden AWT, Swing, JavaFX & SWT 22
izoards Outlook Mail erstellen - Signatur wird nicht angezeigt. AWT, Swing, JavaFX & SWT 3
J actionperformed wird nicht aufgerufen/ repaint() AWT, Swing, JavaFX & SWT 6
J Swing Komponente wird unpassend angepasst in der Größe AWT, Swing, JavaFX & SWT 35
J Java FX NullPointerException, ObservableList wird in View nicht angezeigt.. AWT, Swing, JavaFX & SWT 34
S Next_Button wird nicht ausgeführt. AWT, Swing, JavaFX & SWT 6
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
J Komponente wird manchmal falsch gezeichnet AWT, Swing, JavaFX & SWT 0
J Swing JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
JMölleri Swing Image wird unscharf dargestellt AWT, Swing, JavaFX & SWT 2
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
R Text vom Jlabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
D JavaFX Bearbeitetes Bild wird nicht gespeichert AWT, Swing, JavaFX & SWT 9
J setOnCloseRequest wird nicht ausgelöst AWT, Swing, JavaFX & SWT 3
P JavaFX Fenster wird nicht angezeigt (Mac) AWT, Swing, JavaFX & SWT 13
B JavaFX Bei Scenen-Wechsel im primaryStage wird aktuelle Fenstergröße nicht mit übernommen AWT, Swing, JavaFX & SWT 16
B JavaFX Warum wird hier eine NullPointer-Exception geworfen? AWT, Swing, JavaFX & SWT 7
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
O Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt AWT, Swing, JavaFX & SWT 5
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
kodela BufferStrategy wird nicht gefunden AWT, Swing, JavaFX & SWT 5
J JPanel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
S ImageView wird dem Gridpane nicht zugefügt AWT, Swing, JavaFX & SWT 1
G Repaint wird nicht durchgeführt AWT, Swing, JavaFX & SWT 8
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
M Swing GUI wird nach invokeLater() langsam AWT, Swing, JavaFX & SWT 19
Bluedaishi TableView mit Combox wert wird nicht in die TableView gesetzt AWT, Swing, JavaFX & SWT 38
L JFrame wird zu klein erstellt AWT, Swing, JavaFX & SWT 7
T JavaFX Nach Zoomen wird an falscher Stelle gezeichnet AWT, Swing, JavaFX & SWT 0
kodela Swing Letzte Änderung in der Tabelle wird nicht gespeichert AWT, Swing, JavaFX & SWT 5
cool_brivk24 AWT BufferedImage wird nicht geladen AWT, Swing, JavaFX & SWT 17
S JavaFX Wird es überhaupt genutzt? AWT, Swing, JavaFX & SWT 3
FRI3ND GUI wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
J Canvas wird nicht angezeigt AWT, Swing, JavaFX & SWT 10
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
ralfb1105 Swing Wert in JTextField wird falsch ausgegeben AWT, Swing, JavaFX & SWT 2
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
J Aus welchen Grund wird der Button nicht angezeigt im GridPane? AWT, Swing, JavaFX & SWT 1
J MouseListener wird nicht ausgeführt. AWT, Swing, JavaFX & SWT 4
E Swing Liste in Scrollpane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
J Controller wird zu groß, was tun ? AWT, Swing, JavaFX & SWT 5
CptK Wieso wird nur ein Teil meiner Buttons angezeigt? AWT, Swing, JavaFX & SWT 1
T Label wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
M Aktion ausführen wenn ein JRadiobutton deselektiert wird. AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing JPanel "ContentPane" wird nicht gesetzt/angezeigt AWT, Swing, JavaFX & SWT 16
I JavaFX Fenster wird auf einem anderen Rechner anders dargestellt AWT, Swing, JavaFX & SWT 5
zhermann FX Label text wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 12
zhermann TableView wird nicht gefüllt AWT, Swing, JavaFX & SWT 14
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
zhermann JavaFX Main App wird nicht geöffnet AWT, Swing, JavaFX & SWT 6
Naxon89 JavaFX Image wird nicht korrekt geladen AWT, Swing, JavaFX & SWT 3
4 Swing JLabel wird ,,abgehackt" AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing JPanel wird in JScollPane nicht angezeigt AWT, Swing, JavaFX & SWT 2
D JFrame wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 1
P Kein Bild wird angezeigt bei ImageIcon AWT, Swing, JavaFX & SWT 16
MaxG. JavaFX Inhalt in Tableview wird nicht angezeigt AWT, Swing, JavaFX & SWT 11

Ähnliche Java Themen

Neue Themen


Oben