Gitternetz richtig darstellen

3njoyeD

Mitglied
Guten Abend,

mich wurmt es nun schon seit mehreren Stunden.

Ich bekomme ein Gitternetz in einem Diagramm nicht richtig dargestellt.

Es handelt sich um diese Methode:
Java:
private void drawPattern(Graphics g){
        int i = 0;       
            while ((i + OFFSET < this.getWidth() - OFFSET || i + OFFSET < this.getHeight() - OFFSET ) ) {
               
                if (twoQuadrantSystem){   
                    // Zeichne Senkrechte Linien alle 45°
                    g.drawLine(OFFSET + i, OFFSET , OFFSET +i, this.getHeight() - OFFSET);
                    // Zeichne Waagerechte Linien alle 45°
                    g.drawLine(OFFSET, this.getHeight()/2 + i, this.getWidth() - OFFSET, this.getHeight()/2 + i);
                    g.drawLine(OFFSET, this.getHeight()/2 - i, this.getWidth() - OFFSET, this.getHeight()/2 - i);                       
                } else {
            //        System.out.println("i+OFFSET= " + (i+OFFSET) + " WIDTH-OFFSET= " + (this.getWidth()-OFFSET)
            //                         + " i+OFFSET= " + (i+OFFSET) + " HEIGHT-OFFSET= " + (this.getHeight()-OFFSET));
                    System.out.println("i= " + i + " Breite= " + this.getWidth() + " Höhe= " + this.getHeight());
                   
                    // Zeichne Senkrechte Linien alle 45°
                    g.drawLine(OFFSET + i, OFFSET , OFFSET + i, this.getHeight() - OFFSET);
                    // Zeichne Waagerechte Linien alle 45°
                    g.drawLine(OFFSET, this.getHeight() - OFFSET - i, this.getWidth() - OFFSET , this.getHeight() - OFFSET - i);   
                }   
                i +=45;   
            }
    }

Fehlerbeschreibung:
Sowhohl Waagerechte als auch Senkrechte Linien werden über der Grenze (Bereich OFFSET) gezeichnet.

Die passiert...,
... wenn die Fensterhöhe kleiner als die Fensterbreite wird.
... wenn die Fensterbreite kleiner als die Fensterhöhe wird.

Ich denke es liegt an der (while) Schleifenbedingung. Aber ich sehe derzeit keine Lösung.
Hier der Code der Klasse:

https://www.dropbox.com/s/j63a5zmyk6le7qz/SignalTimeChart.java?dl=0&preview=SignalTimeChart.java

Ich hoffe Ihr könnt mir helfen.

MfG
 

Joose

Top Contributor
Bei deinem File auf der Dropbox hast du in der Schleifebedinung kein logisches || oder sondern ein |, da kann unter anderem zu einem unerwünschten verhalten führen.
In beiden Zweigen deiner if-Bedingung zeichnest du eine Linie welche als x1 bzw. x2 Parameter "OFFSET + i" bekommen. Wäre für mich dann ein logischer Schluss das dort der Fehler liegt. Wenn der OFFSET die Grenze sein soll dann dürfen meiner Meinung nach keine Werte > OFFSET verwendet werden.
 

3njoyeD

Mitglied
Hallo!

Danke für die Antwort!

Wenn ich bei x1 wie x2 OFFSET weg lasse, dann wird die erste Linie 45 Pixel ab dem linken Rand gezeichnet. Die erste Senkrechte Linie wird dann nicht mehr 45 Pixel rechts neben der Y-Achse gezeichnet.

Mein Problem sind die waagerechten Linien oberhalb & die senkrechten Linien rechts neben dem Diagramm, wenn wie oben beschrieben die 2 Fälle der Vergrößerung/Verkleinerung eintreten.

Das mit dem logischen ODER ist richtig, ist aber meinerseits so gewollt, dass || da steht.
 

3njoyeD

Mitglied
Habe einen Tipp bekommen, alles in for Schleifen gepackt & unterteilt. Es funktioniert jetzt so wie gewünscht!

Java:
// Raster einfügen
    private void drawPattern(Graphics g){
        for (int i = 0; i < this.getWidth() - OFFSET*2; i+=45) {
            // Zeichne Senkrechte Linien alle 45°
            g.drawLine(OFFSET + i, OFFSET , OFFSET + i, this.getHeight() - OFFSET);
        }
      
        for (int i = 0; i < this.getHeight() - OFFSET*2; i+=45) {
            if (!twoQuadrantSystem)    // Zeichne Waagerechte Linien alle 45°
                g.drawLine(OFFSET, this.getHeight() - OFFSET - i, this.getWidth() - OFFSET , this.getHeight() - OFFSET - i);
            }
        if (twoQuadrantSystem){  
            for (int j = 0; j < this.getHeight()/2 - OFFSET; j+=45) {
                // Zeichne Waagerechte Linien alle 45° (unterhalb Mitte)
                g.drawLine(OFFSET, this.getHeight()/2 + j, this.getWidth() - OFFSET, this.getHeight()/2 + j);
            }  
            for (int j = 0; j < this.getHeight()/2 - OFFSET; j+=45) {
                // Zeichne Waagerechte Linien alle 45° (oberhalb Mitte)
                g.drawLine(OFFSET, this.getHeight()/2 - j, this.getWidth() - OFFSET, this.getHeight()/2 - j);
            }  
        }   
    }

D A N K E!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Ein Grafisches Gitternetz (für Schiffe versenken) darstellen - Wie? Java Basics - Anfänger-Themen 6
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
C Darstellung von Datum - Codes richtig? Java Basics - Anfänger-Themen 2
C Rechnen mit Brüchen, ist meine Lösung soweit richtig? Java Basics - Anfänger-Themen 4
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
K Hab ich dass so richtig erklärt (Objekte und Referenzen)? Java Basics - Anfänger-Themen 5
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
B Hashmap richtig bauen, die Tripel auf Zahl abbildet? Java Basics - Anfänger-Themen 10
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
B Semaphoren in Abhängigkeit an Bedingungen richtig setzen Java Basics - Anfänger-Themen 3
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
R CSV Reader läuft nicht richtig an Java Basics - Anfänger-Themen 8
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
JensXF Methode überschreiben, so richtig? Java Basics - Anfänger-Themen 4
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
L Ist der Code richtig Java Basics - Anfänger-Themen 3
J Wie bestehenden Quellcode in IDE richtig übernehmen Java Basics - Anfänger-Themen 27
F Methoden Methode richtig aufrufen Java Basics - Anfänger-Themen 3
D Klassen Klassendiagramm richtig erstellen Java Basics - Anfänger-Themen 20
J Module richtig einbinden Java Basics - Anfänger-Themen 2
B Sind meine If-Statements richtig angesetzt ? Java Basics - Anfänger-Themen 27
V Boolean Wert nicht richtig erkannt Java Basics - Anfänger-Themen 4
X Wie Generics richtig benutzen ? Java Basics - Anfänger-Themen 5
P Stringbuilder richtig einsetzen Java Basics - Anfänger-Themen 1
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
A Array richtig füllen Java Basics - Anfänger-Themen 2
S String richtig formatieren Java Basics - Anfänger-Themen 2
P Methoden richtig anwenden Java Basics - Anfänger-Themen 3
O Popoup Menü im JTable richtig anzeigen Java Basics - Anfänger-Themen 6
D Richtig für Programmieren an der UNI lernen Java Basics - Anfänger-Themen 8
X Best Practice Ein int Array richtig mischen Java Basics - Anfänger-Themen 20
D Richtig Vorbereiten auf eine Programmier Klausur Studium. Java Basics - Anfänger-Themen 7
M ObservableList wird nicht richtig geleert Java Basics - Anfänger-Themen 0
T Sortieralgorithmen richtig? Java Basics - Anfänger-Themen 1
X Objekte einer ArrayList richtig ausgeben? Java Basics - Anfänger-Themen 8
S Wie implementiere ich MouseDragged richtig Java Basics - Anfänger-Themen 7
F Konstruktor richtig implementiert? Frage zu Benutzereingaben... Java Basics - Anfänger-Themen 9
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
P Input/Output PQ-Formel wird nicht richtig berechnet Java Basics - Anfänger-Themen 6
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
H Wie lerne ich Java richtig? Java Basics - Anfänger-Themen 2
N Ich weiß nicht, wie ich meinen Code richtig designen soll und komme nicht weiter Java Basics - Anfänger-Themen 4
B Wie instanzisiert man einen Cursor richtig? Java Basics - Anfänger-Themen 3
J Polymorphie und Dynamisches Binden richtig nutzen Java Basics - Anfänger-Themen 11
N Best Practice Ist die Sortierung richtig? Java Basics - Anfänger-Themen 3
J Erste Schritte Lottozahlen richtig generieren. Java Basics - Anfänger-Themen 12
J Behauptung so richtig? Java Basics - Anfänger-Themen 10
R Listen richtig implementieren Java Basics - Anfänger-Themen 3
B OOP Objekt in IF erzeugen - funktioniert nicht so richtig Java Basics - Anfänger-Themen 11
A Methode richtig überladen Java Basics - Anfänger-Themen 6
H Aufgabe so richtig gelöst? Java Basics - Anfänger-Themen 14
S Code richtig / besser machbar? (Nicht sicher, ob Code selbst falsch ist) Java Basics - Anfänger-Themen 4
W Ist mein Struktogram richtig erstellt worden? Java Basics - Anfänger-Themen 4
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
U Mehrfach verwendete Sub-Klassen richtig einbinden Java Basics - Anfänger-Themen 4
L Schleife funktioniert nicht richtig Java Basics - Anfänger-Themen 12
Meeresgott OOP Richtig mit java.util.Property umgehen Java Basics - Anfänger-Themen 22
Y Erste Schritte Ich verstehe this. nicht so richtig Java Basics - Anfänger-Themen 5
I Programm von mir - keine Ahnung mehr ob richtig falsch:-( Java Basics - Anfänger-Themen 6
M Abstände richtig wiedergeben Java Basics - Anfänger-Themen 2
S nio move() funktioniert nicht richtig Java Basics - Anfänger-Themen 2
J Timer richtig pausieren Java Basics - Anfänger-Themen 2
B Ist meine Klasse richtig kommentiert? Java Basics - Anfänger-Themen 2
kilopack15 Ist diese setter-Methode richtig? Java Basics - Anfänger-Themen 2
H OOP, wie gehts richtig? (Beispiel von meinem Prof) Java Basics - Anfänger-Themen 6
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
kilopack15 Lösungsansatz richtig? Java Basics - Anfänger-Themen 23
Meeresgott OOP Socket Verbindung richtig Kapseln Java Basics - Anfänger-Themen 0
Meeresgott OOP Gui, Logik und Datenbank richtig aufbauen Java Basics - Anfänger-Themen 43
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
C Warum funktioniert mein If Statement nicht richtig? Java Basics - Anfänger-Themen 18
J Aufgabe(Threads) richtig verstanden/implementiert Java Basics - Anfänger-Themen 27
K Erste Schritte Wie lerne ich Java richtig? Java Basics - Anfänger-Themen 22
U Richtig *.properties speichern Java Basics - Anfänger-Themen 0
N Lambda Ausdrücke richtig schreiben Java Basics - Anfänger-Themen 4
B OOP Wie benutze ich die Main Funktion richtig? Java Basics - Anfänger-Themen 10
B Exception richtig einbinden Java Basics - Anfänger-Themen 1
D CSV Files richtig zusammenführen Java Basics - Anfänger-Themen 3
D Array richtig ausgeben Java Basics - Anfänger-Themen 6
Z HashMap richtig benutzen Java Basics - Anfänger-Themen 2
S Variable (int) erhöht sich nicht richtig Java Basics - Anfänger-Themen 18
J Vererbung Wurden die Aufgaben richtig programmiert? Java Basics - Anfänger-Themen 20
J Iterator Funktioniert nicht richtig in StackImplementierung Java Basics - Anfänger-Themen 3
L0MiN Input/Output Wie kann ich Kompilierfehler richtig ausgeben lassen (Runtime)? Java Basics - Anfänger-Themen 1
J Programm im Jar-Format funktioniert nicht richtig Java Basics - Anfänger-Themen 9
L Arrays richtig initialisieren Java Basics - Anfänger-Themen 1
V Java Regex richtig parsen Java Basics - Anfänger-Themen 2
O Programm funktioniert nur im Debugger richtig Java Basics - Anfänger-Themen 2
F Klassen für Objekt richtig erstellen Java Basics - Anfänger-Themen 8
M Programm wird nicht richtig ausgeführt Java Basics - Anfänger-Themen 4
Q Path wird nicht richtig "übersetzt"? Java Basics - Anfänger-Themen 7
W HTML Code, Umlaute werden nicht richtig dargestellt Java Basics - Anfänger-Themen 7
T Threads Threads richtig synchronisieren Java Basics - Anfänger-Themen 3
? Wie sind ESCAPE-Sequenzen (z.B \f für einen Seitenvorschub) richtig anuwenden? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben