Problem mit wait()/notify() - JFrame lädt nicht

cyb3rdragon

Mitglied
Hallo,
ich hab ein Problem mit einem Konverter. Ich muss eine Accsess Tabelle auf einen mySQL-Server übertragen. soweit noch keine Probleme. Allerdings gibts da z.B. die Spalten "Hersteller/Typ" (es sind Fahrzeuge gemeint) die in 2. Spalten aufgeteilt werden sollen. Da das am besten mit einem Benutzer geht hab ich mir gedacht das ich die Methode die die alte Tabelle ausließt anhalte und ein JFrame öffne in dem der Benutzer die Trennung bestätigt bzw. richtig stellt. Wenn der Benutzer dann auf OK klickt sols weiter gehn.
Das Problem ist jetz das Fenster nciht richtig lädt. Komischerweise allerdings nur wenn ich das Fenster per Button oder über eine Methode aufrufe.

Hier mal dei Codestücke von denen ich denke das dort das Problem liegt. Der Rest hat nicht direkt was mit dem Problem zu tun.

Und entschuldigt bitte Rechtschreibfehler oder schlechte Namensvergebung.

Code:
public Converter(String pfadA, String pfadS, String database, String name,
			String pw)
	{
		
// Verbindungsaufbau
						convert();
// Verbindung wir geschlossen	

	public  void convert()
	{

	       WortTrenner blub = new WortTrenner(this, "typ1", "typ2",
			"String der zu trennen ist");
	}
	public synchronized void weiter()
	{
		notifyAll();
	}
	public synchronized void halten()
	{
		try
		{
			wait();
		} catch (InterruptedException e)
		{
			e.printStackTrace();
		}
	}

Code:
WortTrenner(final Converter pframe, String typ1, String typ2, String wort)
	{
		super("Bitte " + typ1 + " und " + typ2 + " teilen");
		System.out.println("1");
		this.setSize(340, 200);
		this.setLayout(null);
		this.setResizable(false);

		Dimension screen = new Dimension(Toolkit.getDefaultToolkit()
				.getScreenSize());
		this.setLocation(((int) (screen.getWidth() - this.getWidth()) / 2),
				(int) ((screen.getHeight() - this.getHeight()) / 2));
		frame = this;
		t1 = new JLabel(typ1);
		t2 = new JLabel(typ2);
		swit = new JButton("<-->");
		w1 = new JTextField(wort.substring(0, wort.indexOf(" ")));
		w2 = new JTextField(wort.substring(wort.indexOf(" ")));
		slider = new JSlider(0, wort.length());
		t1.setHorizontalAlignment(JTextField.CENTER);
		t2.setHorizontalAlignment(JTextField.CENTER);

		ok = new JButton("OK");
		System.out.println("2");
		t1.setBounds(10, 5, 120, 25);
		t2.setBounds(210, 5, 120, 25);
		swit.setBounds(140, 20, 60, 25);
		w1.setBounds(30, 30, 80, 25);
		w2.setBounds(230, 30, 80, 25);
		slider.setBounds(50, 80, 240, 20);
		ok.setBounds(190, 110, 60, 25);

		slider.setValue(wort.indexOf(" "));
		add(t1);
		add(t2);
		add(swit);
		add(w1);
		add(w2);
		add(slider);
		add(ok);

		slider.addChangeListener(new ChangeListener()
		{
			@Override
			public void stateChanged(ChangeEvent arg0)
			{
				w1.setText(frame.wort.substring(0, slider.getValue()));
				w2.setText(frame.wort.substring(slider.getValue()));
			}
		});
		ok.addActionListener(new ActionListener()
		{
			@Override
			public synchronized void actionPerformed(ActionEvent arg0)
			{
				pframe.weiter();
			}
		});

		this.setVisible(true);
		pframe.halten();

Da es das erste mal ist das ich ein Programm so anhalten muss hab ich keine Ahnung ob die Methoden so richtig angewendet sind oder ob es eine bessere Möglichkeit gibt

Ich hoffe mir kann jemand helfen
cyb3rdragon
 
Habs gelöst. Sogar mit nem Thread aus diesem Forum.
Hatte neute Nachmittag wohl nicht die richtigen Suchworte gefunden.

Habe die wait und notify-Stellen an die aus diesem Thema angepasst.
 
Zurück