Hallo,
ich habe folgendes Applet gebastelt: Applet
(die 2 oberen roten Linen lassen sich verscheiben)
Soweit so gut. Da ich am Anfang der Programmierung noch keinerlei Erfahrungen mit Java hatte, ist die Programmierung nicht gerade sauber. Ich möchte das ganze etwas überarbeiten. Eine Sache ist z.B. das ich AWT und Swing gemischt habe.
Der Aufbau ist folgendermaßen:
Jedes Diagramm ist eine eigene Klasse die jeweils in einer eigenen *.java Datei geschrieben ist.
Momentan sind diese Klassen noch von Canvas abgeleitet.
Des weiteren gibt es eine "HauptKlasse" die von JApplet abgeleitet ist. Dort wird von jeder der Klassen die die Diagramme enthalten ein Objekt erzeugt.
diese Objekte werden dann in ein GridBagLayout gesetzt:
Das funktioniert zwar ganz gut, ist aber wohl nicht die sauberste Lösung.
Wie kann ich das besser machen? Ich habe bereits versucht Canvas in JComponent zuändern und paintComponent anstelle von paint zu benutzen, aber das funktoniert irgendwie nicht. Es wird dann jedenfalls nichts mehr angezeigt.
Eine weitere Frage, die eigentlich ganz einfach klingt ist, wie ich das bei dem Schaltbild mache. Im moment passiert das noch alles in der HauptKlasse. Ich lade das Bild in ein Icon und setze dieses in ein Label. Das Label setze ich dann genau wie die anderen Objekte in das GridBagLayout
Wie mache ich das wenn ich auch das Schaltbild in einer extra .java Datei bzw. Klasse erstellen möchte und das dann genau wie die anderen in der Hauptklasse ins Layout setzen will.
Ich habe einiges ausprobiert, aber irgendwie klappt es nicht. Wie müsste die Klasse grob aussehen und wovon müsste ich sie ableiten?
Die ganzen Möglichkeiten machen mich noch verrückt (JComponent, JFrame, JPanel, JLabel, Container, Canvas, usw.)
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Also in erster Linie geht es mir darum zu klären wie man das am saubersten aufbauen würde und wovon ich die einzelnen Klassen am besten ableiten sollte.
Vielen Dank schonmal für eure Hilfe
Gruß Sven
ich habe folgendes Applet gebastelt: Applet
(die 2 oberen roten Linen lassen sich verscheiben)
Soweit so gut. Da ich am Anfang der Programmierung noch keinerlei Erfahrungen mit Java hatte, ist die Programmierung nicht gerade sauber. Ich möchte das ganze etwas überarbeiten. Eine Sache ist z.B. das ich AWT und Swing gemischt habe.
Der Aufbau ist folgendermaßen:
Jedes Diagramm ist eine eigene Klasse die jeweils in einer eigenen *.java Datei geschrieben ist.
Momentan sind diese Klassen noch von Canvas abgeleitet.
Code:
//#### Klasse für Sägezahnspannung ######################################################
public class u_panel extends java.awt.Canvas
{
//Variablen
public static int u_steuer_y=100;
public static int u_steuer_x=20;
//---- Konstruktor
public u_panel()
{
super();
setBackground(java.awt.Color.white);
setBounds(24,24,500,180);
}
// Überschreiben der Methode paint() für u_canvas
public void paint(Graphics g)
{
Font klein = new Font("Arial", Font.PLAIN, 10);
g.drawString("Sägezahn", 20, 165);
//Koorditatensystem
g.setColor(Color.black);
g.drawString("t", 445,165);
g.drawLine(20,20,20,150);
g.drawLine(20,150,450,150);
usw.....
Des weiteren gibt es eine "HauptKlasse" die von JApplet abgeleitet ist. Dort wird von jeder der Klassen die die Diagramme enthalten ein Objekt erzeugt.
Code:
u_panel u_jp = new u_panel();
diese Objekte werden dann in ein GridBagLayout gesetzt:
Code:
GridBagLayout gbl=new GridBagLayout();
setLayout(gbl);
GridBagConstraints gbc=new GridBagConstraints();
gbc.fill=GridBagConstraints.BOTH;
gbc.insets = new Insets(5,5,5,5);
//Sägezahn
gbc.anchor = gbc.WEST;
gbc.gridx = 0;
gbc.gridy = 0;
gbc.gridheight = 1;
gbc.gridwidth = 1;
gbl.setConstraints(u_jp, gbc);
add(u_jp);
usw...
Das funktioniert zwar ganz gut, ist aber wohl nicht die sauberste Lösung.
Wie kann ich das besser machen? Ich habe bereits versucht Canvas in JComponent zuändern und paintComponent anstelle von paint zu benutzen, aber das funktoniert irgendwie nicht. Es wird dann jedenfalls nichts mehr angezeigt.
Eine weitere Frage, die eigentlich ganz einfach klingt ist, wie ich das bei dem Schaltbild mache. Im moment passiert das noch alles in der HauptKlasse. Ich lade das Bild in ein Icon und setze dieses in ein Label. Das Label setze ich dann genau wie die anderen Objekte in das GridBagLayout
Wie mache ich das wenn ich auch das Schaltbild in einer extra .java Datei bzw. Klasse erstellen möchte und das dann genau wie die anderen in der Hauptklasse ins Layout setzen will.
Ich habe einiges ausprobiert, aber irgendwie klappt es nicht. Wie müsste die Klasse grob aussehen und wovon müsste ich sie ableiten?
Die ganzen Möglichkeiten machen mich noch verrückt (JComponent, JFrame, JPanel, JLabel, Container, Canvas, usw.)
Ich hoffe ich habe mich einigermaßen verständlich ausgedrückt.
Also in erster Linie geht es mir darum zu klären wie man das am saubersten aufbauen würde und wovon ich die einzelnen Klassen am besten ableiten sollte.
Vielen Dank schonmal für eure Hilfe
Gruß Sven