Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Ich hab da eine eine Frage (die zwar in meinem Fall eher Swing ist, aber doch eher zu den Grundlagen gehoert):
Ich habe eine Fenster, auf Knopfdruck wird ein neues Fenster geoffnet, dass einen Wert vom Benutzer einlesen soll, und diesen Anschliessend an Fenster 1 zurueckgibt.
Meine Frage ist:
Wie bekomme ich es hin, dass Fenster 2 den Eingelesenen Wert an Fenster 1 zurueckgibt?
Also:
Fenster 1 offen
Button von Fenster 1 Druecken
Fenster 2 offen
Fenster 2 bekommt wert, es wird OK gedrueckt
Fenster 2 schliesst sich und gibt wert an Fenster 1 zurueck.
mhh, also ich habe jetzt mal versucht, mein Fenster 2 in einen Dialog zu "verwandeln", allerdings isses wohl doch etwas schwieriger als gedacht.
Koennte mir jemand sagen, was ich falsch gemacht hab?
Java:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import Searcher.Bridge;
public class JobPopUp {
private static JDialog frame = null;
private static JLabel informationLabel = null;
private static JButton oKButton = null;
private static JTextField textField = null;
public static void main(String[] args) throws Exception {
startPopUp(new Bridge());
}
public static void startPopUp(Bridge bridge) {
frame = new JDialog();
frame.setLayout(new BorderLayout());
frame.setSize(350, 200);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
createTextField(frame);
createInformationPanel();
createOKButton(frame, bridge);
frame.move(680, 0);
frame.setVisible(true);
}
private static void createOKButton(final JDialog frame2, Bridge bridge) {
oKButton = new JButton("OK");
oKButton.setSize(50, 550);
oKButton.setVisible(true);
oKButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent event) {
Bridge.setJob(textField.getText());
frame2.dispose();
}
});
frame2.add(oKButton, BorderLayout.SOUTH);
}
private static void createTextField(JDialog frame2) {
textField = new JTextField();
textField.setVisible(true);
frame2.add(textField, BorderLayout.CENTER);
}
private static void createInformationPanel() {
informationLabel = new JLabel("<HTML><BODY>Das Laden der Software kann "
+ "bis zu eine Minute Dauern!<BR> Bitte geben sie den Text ein.</BODY></HTML>");
informationLabel.setVisible(true);
frame.add(informationLabel, BorderLayout.NORTH);
}
}
Ich hatte mir gedacht, dass ich das Fenster mit der startPopUp() Methode aufrufe.
Bridge selbst wird fuer das Popup nicht benoetigt, das ist nur der Empfaenger der Daten, die das PopUp erhaelt.
hi, also ich weiß immernoch nicht so recht was du eig. machen willst, aber ich beziehe mich mal auf die vorredner und hoffe das ist das was du suchst, hier ein "kleines" beispiel:
Java:
JFrame frame = new JFrame("Demo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
final JLabel label = new JLabel();
JButton button = new JButton("Druecken");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
//Hier der Eingabedialog !!!! der Input vom Benuter wird in str gespiechert !
String str = JOptionPane.showInputDialog(null,
"Texteingabe : ", "Überschrift", -1);
label.setText("Eingabe: " + str);
}
});
panel.add(button);
panel.add(label);
frame.add(panel);
frame.setPreferredSize(new Dimension(300, 100));
frame.pack();
frame.setVisible(true);
also, ich will, dass Fenster 1, welches Fenster 2 ja aufruft, auf eine Bestatigung von Fenster 2 wartet, dass die Daten eingelesen worden sind. (so in der Art zumindest), und vorher NICHT weiterarbeitet.
Hi!
Wie schon gesagt suchst du wohl nach einem Modalen Dialog. Wenn du zB aus dem JFrame "fenster1" herraus (via Button oder wie auch immer), einen Dialog initialisierst, sollte das nicht so aussehen
Java:
JDialog dialog = new JDialog();
sondern so
Java:
JDialog dialog = new JDialog(fenster1, true);
Auf diese Weise wird fenster1 blockiert, solange der Dialog offen ist.