Hallo anderer Jens,
ich habe das von zerix nicht überlesen. Es kann auch gut sein das ich mich nur eine Stunde in das Dateihandling einlesen müsste. Aber mir fehlt drum rum auch noch so viel Know How das es für mich jetzt schneller geht, wenn ich in das Programm einfach unperformant 50 Frames einbaue. Wenn ich einmal weiß wie ich in der Main Class darauf warte, bis der Frame geschlossen ist, und dann den nächsten auf mache, bin ich quasi schon fertig.
Und, auch wenn man das meinem Java Code nicht ansieht. Ich bin Anwendungsentwickler
. In Delphi würde ich es zum Beispiel ganz sicher auch mit XML oder CSV oder Textdateien machen. Von mir aus auch mit einer Datenbank, wenn es was größeres wird.
Es bleibt jetzt leider nämlich noch die Frage: Wie kann ich in der "class Sabine" darauf warten bis createandshowGUI() fertig ist (also das Frame mit einem dispose() geschloßen wurde) und erst dann die nächste classe createn. Geht das? zerix meinte schon das ich das ganze ja von JDialog ableiten müsste. Habe das jetzt mal so implementiert:
Die Klasse "Sabine" hab ich komplett so gelassen.
Kann mir jemand diese Frage noch beantworten?
Vielen dank im Voraus.
Jens
ich habe das von zerix nicht überlesen. Es kann auch gut sein das ich mich nur eine Stunde in das Dateihandling einlesen müsste. Aber mir fehlt drum rum auch noch so viel Know How das es für mich jetzt schneller geht, wenn ich in das Programm einfach unperformant 50 Frames einbaue. Wenn ich einmal weiß wie ich in der Main Class darauf warte, bis der Frame geschlossen ist, und dann den nächsten auf mache, bin ich quasi schon fertig.
Und, auch wenn man das meinem Java Code nicht ansieht. Ich bin Anwendungsentwickler

Es bleibt jetzt leider nämlich noch die Frage: Wie kann ich in der "class Sabine" darauf warten bis createandshowGUI() fertig ist (also das Frame mit einem dispose() geschloßen wurde) und erst dann die nächste classe createn. Geht das? zerix meinte schon das ich das ganze ja von JDialog ableiten müsste. Habe das jetzt mal so implementiert:
Code:
package sabine_project;
import javax.swing.*;
import java.util.*;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.*;
public class Question1 extends JPanel implements ActionListener, KeyListener
{
// globale Variabeln
JLabel lPressed = new JLabel("Nothing");
JFrame meinframe = new JFrame("Sabines Projekt");
JDialog startframe = new JDialog(meinframe, true);
long waited = 0;
//JLabel typepicture, adpicture, adpicture2, typepicture2 = new JLabel();
public int createAndShowGUI()
{
// Programm beenden, nachdem das Fenster geschloßen wurde.
//startframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
startframe.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
startframe.setLocation(350,75);
startframe.addKeyListener(this);
startframe.setModal(true);
// Panel anstatt kompliziertem ContentPane erstellen.
JPanel anzeigePanel = new JPanel();
anzeigePanel.addKeyListener(this);
anzeigePanel.setLayout(new GridLayout(2, 3, 5, 5));
JLabel typepicture = new JLabel();
typepicture.setIcon(new ImageIcon("/home/jens/type_q.png"));
typepicture.setAlignmentY(300);
anzeigePanel.add(typepicture/*, BorderLayout.LINE_START*/);
JLabel adpicture = new JLabel();
adpicture.setIcon(new ImageIcon("/home/jens/testpic.png"));
anzeigePanel.add(adpicture);
JLabel typepicture2 = new JLabel();
typepicture2.setIcon(new ImageIcon("/home/jens/type_a.png"));
anzeigePanel.add(typepicture2);
JLabel adpicture2 = new JLabel();
adpicture2.setIcon(new ImageIcon("/home/jens/testpic.png"));
anzeigePanel.add(adpicture2);
lPressed.setText("Key");
anzeigePanel.add(lPressed);
// ContentPane des Frames zuletzt setzten.
startframe.setContentPane(anzeigePanel);
// Frame anzeigen.
startframe.pack();
startframe.setVisible(true);
// Focus auf den Frame setzten.
startframe.requestFocus();
//anzeigePanel.requestFocus();
// Zeit nach der anzeige holen...
Date mytime = new Date();
waited = mytime.getTime();
return 0;
}
public void keyTyped(KeyEvent e)
{
String KeyChar = Character.toString(e.getKeyChar());
lPressed.setText(KeyChar);
if (KeyChar.equalsIgnoreCase("q"))
{
Date mytime2 = new Date();
long gerechnet = ((mytime2.getTime() - waited));
startframe.setVisible(false);
startframe.dispose();
}
}
public void keyPressed(KeyEvent e)
{
//lPressed.setText(Integer.toString(e.getID()));
}
public void keyReleased(KeyEvent e)
{
//lPressed.setText(Integer.toString(e.getID()));
}
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
}
Die Klasse "Sabine" hab ich komplett so gelassen.
Kann mir jemand diese Frage noch beantworten?
Vielen dank im Voraus.
Jens