Versuchen, Linien zu zeichnen, die mit JPanel
Ich versuche zum zeichnen von Linien mit JPanel
und ich getroffen haben, die etwas von einer Wand. Ich kann zwei Seiten nach unten, aber einmal geht es um die Subtraktion von x-cord es geht alles falsch.
package GUIstuff;
import java.awt.Graphics;
import javax.swing.JPanel;
public class DrawPanel extends JPanel{
public void paintComponent (Graphics g){
super.paintComponent(g);
int width = getWidth();
int height = getHeight();
int drawCounter = 0; //counters for all the while statements
int drawCounter2 = 0;
int drawCounter3 = 0;
int drawCounter4 = 0;
int x1 = 0; //cords change with the while statemetns
int x2 = 0;
int y1 = 0;
int y2 = 0;
while (drawCounter <= 15){ //counter
y2 = 250;
g.drawLine(x1, y1, x2, y2);
x2 = x2 + 15;
y1 = y1 + 15;
drawCounter++; }
int u1 = 0;
int u2 = 0;
int v1 = 0;
int v2 = 0;
while (drawCounter2 <= 15){
u2 = 250;
g.drawLine(u1, v1, u2, v2);
u1 = u1 + 15;
v2 = v2 + 15;
drawCounter2++;
}
int a1 = 0;
int a2 = 0;
int b1 = 0;
int b2 = 0;
while (drawCounter3 <= 15){
a2 = 250;
g.drawLine(a1, b1, a2, b2);
b1 = b1 + 15;
a2 = a2 - 15;
drawCounter3++;
}
}
}
Hier ist meine runner-Klasse
package GUIstuff;
import javax.swing.JFrame;
public class DrawPanelTest {
public static void main (String args[]){
DrawPanel panel = new DrawPanel();
JFrame application = new JFrame();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.add(panel);
application.setSize (250, 250);
application.setVisible(true);
}
}
Ich habe die Zeilen in der linken unteren und der rechten oberen aber wenn ich versuche, subtrahieren von x bekomme ich nur Linien, die eine durchquert die ganze box.
Siehe auch
LissajousPanel
.
InformationsquelleAutor Blank1268 | 2013-04-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn dabei die kundenspezifische Malerei, die Sie überschreiben sollten, die
getPreferredSize()
- Methode, damit das panel angezeigt werden kann auf die bevorzugte Größe.Wenn Sie beim zeichnen der Linien mit zwei Variablen sind die gleichen und zwei Variablen unterscheiden. Verwenden Sie die Breite/Höhe variabel, wenn angemessen, statt hardcoding eine Zahl. Im Beispiel unten habe ich den linken und unteren Seiten. Die untere Seite zeigt, wie zu subtrahieren. Ich lasse Sie herausfinden, das Muster für die beiden anderen Seite.
Auch, ich machte das panel ein wenig mehr Dynamik, so dass es einfach sein wird, konfigurieren Sie die Anzahl der Zeilen, die Sie wollen gemalt und den Abstand zwischen den Linien.
Ich dachte, dass eine einzelne Methode brauchen würde, ab 4 Koordinaten und 4 deltas für jeden. Ich dachte, das war einfacher, als es war näher an der Vorgehensweise der OP verwendet wurde. Ich denke, dass ich gereinigt es ein bisschen. Haben Sie vielleicht ein einfacher Algorithmus zur post zu geben, die OP der Wahl.
Ich bin damit einverstanden, einfacher ist es gut, ich bin nur eine Optimierung freak 😛
InformationsquelleAutor camickr