2 Frames einzeln ansprechen (AWT)

Versed

Grünschnabel
Hi, Leutz!
Ich hoffe, es ist irgendwo in der Community einer, der mir helfen kann. Ich habe schon ewig nach ner Lösung gesucht, aber nirgendseine gefunden. Nachdem ich dann zum 2000. Mal auf tutorials.de gekommen bin, dachte ich mir, poste ich hier rein!
Wie dem auch sei, hier mein Problem:
Ich versuche ein Programm zu schreiben, in welchem ich 2 Frames (AWT) erstelle. Das klappt auch recht gut (s.folgender Code):

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

class newFrame extends Frame {
public newFrame (String titel, int width, int height, int x, int y) {
super(titel);
setSize(width,height);
setVisible(true);
setLocation(x,y);
}
}

public class TrivialApplication {
public static void main(String args[]) {
newFrame f = new newFrame("titel",100,100,300,300);
newFrame f2 = new newFrame("t2",300,300,1,1);
}

Damit habe ich nun 2 Frames offen. Nun will ich in einem Frame was zeichnen, was nicht im anderen Frame kommt. Kann mir jemand helfen? (Nebenbei bemerkt: Ich bekomme es nicht einmal hin, überhaupt was zu zeichnen. Ich hatte nen anderes Programm geschrieben, welches 2 Frames geöffnet hat, aber in beiden das selbe gezeichnet hat!)

Wenn mir also jemand entweder durch Erweiterung meines Codes oder durch nen ganz anderen Code zu helfen, wäre ich sehr Dankbar!

Gruß, Versed!
 
Servus!

Code:
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Panel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.Random;

/*
 * Created on 02.01.2004
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */

/**
 * @author Administrator
 *
 * To change the template for this generated type comment go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
public class FrameExample extends Frame {

	private Frame frm1, frm2;
	private Button b1, b2;

	public FrameExample() {
		super("TestFrame");

		this.addWindowListener(new WindowAdapter() {
			public void windowClosing(WindowEvent event) {
				dispose();
				System.exit(0);
			}
		});

		setSize(320, 240);
		this.setVisible(true);
		b1 = new Button("Zeichne in Frm1");
		b2 = new Button("Zeichne in Frm2");
		Panel panel = new Panel();
		panel.setLayout(new FlowLayout());
		panel.add(b1);
		panel.add(b2);

		this.add(panel);
		this.validate();

		b1.addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent event) {
				System.out.println("Button 1 pressed");
				if (frm1 == null) {
					frm1 = new Frame("Frame1");
					frm1.setSize(320, 240);
					frm1.setVisible(true);
				}

				Random r = new Random();
				int x1 = r.nextInt() % 320;
				int y1 = r.nextInt() % 240;
				int x2 = r.nextInt() % 320;
				int y2 = r.nextInt() % 240;

				Graphics g = frm1.getGraphics();
				g.setColor(Color.blue);
				g.drawLine(x1, y1, x2, y2);

			}
		});

		b2.addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent event) {
				System.out.println("Button 2 pressed");
				if (frm2 == null) {
					frm2 = new Frame("Frame1");
					frm2.setSize(320, 240);
					frm2.setVisible(true);
				}

				Random r = new Random();
				int x1 = r.nextInt() % 320;
				int y1 = r.nextInt() % 240;
				int x2 = r.nextInt() % 320;
				int y2 = r.nextInt() % 240;

				Graphics g = frm2.getGraphics();
				g.setColor(Color.red);
				g.drawLine(x1, y1, x2, y2);

			}
		});
	}

	public static void main(String[] args) {
		new FrameExample();
	}
}

Gruß Tom
 
DANKE!

Ich bedanke mich für die Mühe, die du dir gemacht hast. Ich hatte echt keine Ahnung, wie ich das machen sollte. Jetzt habe ich es natürlich begriffen!
Danke!
Gruß, Sascha!
 
Zurück