JOptionPane.OK_OPTION abfangen oder disablen? Wie?

Status
Nicht offen für weitere Antworten.
M

madman

Gast
Hallo,

ist vielleicht ne ziemlich einfache Frage, mich bringt sie aber im Moment an der Rand des Wahnsinns.
Hab hier eine JOptionPane mit einem Textfeld und einer ComboBoxgebaut, welche nach Click des SpeichernButtons aufgerufen wird. In das Textfeld soll der User einen Dateinamen eingeben. Aus der ComboBox das Laufwerk auswählen.
Wenn aber nichts im Texfeld steht soll der der Button entweder nicht funktionieren (enable (false)) oder eine JOptionPane.showMessageDialog ausgegeben werden.

Es soll also nicht gespeichert werden, solang das Textfeld leer ist.

Hat jemand ne Idee wie man das bewerkstelligen könnte.

Vielen Dank.

Gruß
Mike



Code:
if(ae.getSource().equals(speichernButton))
		
               {	
			String[] auswahl = { "C:", "D:", "E:", "F:", "G" };
			
			JTextField name = new JTextField("Name");
			JComboBox combobox = new JComboBox(auswahl);
			JPanel creationPanel = new JPanel(new GridLayout(6,2));
			
			creationPanel.add(combobox);
			creationPanel.add(dateiname);
			
			dateiname.addActionListener(this);
			combobox.addActionListener(this);
			combobox.setSelectedIndex(0);

			int response = JOptionPane.showConfirmDialog(null, creationPanel, "Laufwerk auswählen!", 
					                       JOptionPane.OK_CANCEL_OPTION, OptionPane.INFORMATION_MESSAGE);  
					                                              			
			switch(response) {
					
				    case JOptionPane.OK_OPTION: 
		              		    			
    				    Frame parent = new Frame();
    				    FileDialog fd = new FileDialog(parent,"" , FileDialog.SAVE);
    				    
    				    String dir = ("\\DATEN\\");
    				    buchstabe = combobox.getSelectedItem().toString();
    				    
    				    System.out.println(auswahl+dir);		    				    
    				    File file = new File(buchstabe+dir);
    				    				     
    				    try{
    				    			
					fd.setFile(dateiname.getText()+".TXT");   
					String  file1 = fd.getFile().toUpperCase();
    		        
    				        FileOutputStream fout = new FileOutputStream(fd.getDirectory() + file1);
    				        OutputStreamWriter osw = new OutputStreamWriter(fout);
    				        BufferedWriter out = new BufferedWriter(osw);

		    	                out.write("Daten=1:"+tf1.getText()+";2:"+tf2.getText()+";3:"+tf3.getText()+";");
		    			out.newLine();
		    			out.close();
		    						
		    			JOptionPane.showMessageDialog(frame,
		    							    "Datei [" + fd.getDirectory() + file1+ "] erfolgreich gespeichert!",
		    							    "Daten speichern",
		    							    JOptionPane.INFORMATION_MESSAGE);

		    			} 
		    			catch (IOException e){
		    			System.out.println("Fehler beim speichern");
		    		        }

		               break;
		            case JOptionPane.CANCEL_OPTION: 
		            	System.out.println("\"Abbrechen\" geklickt.");
		               break;
		               
		            case JOptionPane.CLOSED_OPTION: 
		            	System.out.println("Dialog geschlossen");
		         }
			   }
 

André Uhres

Top Contributor
madman hat gesagt.:
..Es soll also nicht gespeichert werden, solang das Textfeld leer ist.
Hat jemand ne Idee wie man das bewerkstelligen könnte..
Einfach nur prüfen, ob der Name gültig ist:
Code:
package dialog;
/*
 * DialogBeispiel.java
 */
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class DialogBeispiel extends JFrame{
    private JButton speichernButton;
    private String buchstabe;
    private String dateiname;
    private JFrame frame;
    public DialogBeispiel() {
        super("Dialog Beispiel");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setSize(400,300);
        setLocationRelativeTo(null);
        frame = this;
        speichernButton = new JButton("Speichern...");
        getContentPane().add(speichernButton, BorderLayout.NORTH);
        speichernButton.addActionListener(new ActionListener() {
            public void actionPerformed(final ActionEvent evt) {
                speichernButtonActionPerformed(evt);
            }
        });
    }
    private void speichernButtonActionPerformed(final ActionEvent ae){
        String[] auswahl = { "C:", "D:", "E:", "F:", "G:" };
        String text = "Name";
        JComboBox combobox = new JComboBox(auswahl);
        JTextField name = new JTextField(text);
        JPanel creationPanel = new JPanel(new GridLayout(0, 1));
        creationPanel.add(combobox);
        creationPanel.add(name);
        boolean error;
        do{
            error = false;
            switch(JOptionPane.showConfirmDialog(null, creationPanel, "Laufwerk auswählen!",
                    JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE)) {
                case JOptionPane.OK_OPTION:
                    buchstabe = combobox.getSelectedItem().toString();
                    dateiname = name.getText();
                    if(dateiname.equalsIgnoreCase(text) || dateiname.equalsIgnoreCase("")){
                        error = true;
                        JOptionPane.showMessageDialog(frame,
                                "Datei [" + buchstabe +"\\"+ dateiname + "] ungültig!\n",
                                "Daten speichern",
                                JOptionPane.ERROR_MESSAGE);
                    }else{
                        //TODO: Datei speichern
                        JOptionPane.showMessageDialog(frame,
                                "Datei [" + buchstabe +"\\"+ dateiname + "] erfolgreich gespeichert!",
                                "Daten speichern",
                                JOptionPane.INFORMATION_MESSAGE);
                    }
                    break;
                case JOptionPane.CANCEL_OPTION:
                    System.out.println("\"Abbrechen\" geklickt.");
                    break;
                case JOptionPane.CLOSED_OPTION:
                    System.out.println("Dialog geschlossen");
            }
        }while(error);
    }
    public static void main(final String args[]) {new DialogBeispiel().setVisible(true);}
}
 
M

madman

Gast
Hallo André,

vielen Dank für deinen Lösungsvorschlag. Funktioniert wunderbar.

Best Forum ever!

Gruß
Mike
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H JOptionPane YES Option mit Folge? Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
nbergmann The type JOptionPane is not accessible. Java Basics - Anfänger-Themen 4
nbergmann Wo ist javax.swing.JOptionPane gespeichert? Java Basics - Anfänger-Themen 4
T jOptionPane zum schließen von Fenster, wie "Ja" und "Nein" anstatt Yes und No Java Basics - Anfänger-Themen 2
chocobear26 Interface JOptionPane - Dialog_Fenster zeigt immer vorherige Eingabe an. Java Basics - Anfänger-Themen 4
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
M JOptionPane Fehler bei "Abbrechen" des Fensters Java Basics - Anfänger-Themen 10
OSchriever Exception für Abbrechen-Schaltfläche JOptionpane Java Basics - Anfänger-Themen 9
S JOptionPane komplett leeres Fenster Java Basics - Anfänger-Themen 4
Dawinartor Klassen Zeilenumbruch in JOptionPane.showMessageDialog Java Basics - Anfänger-Themen 8
N javax swing JOptionPane Hilfe Java Basics - Anfänger-Themen 3
T JOptionPane mit eigenem Icon Java Basics - Anfänger-Themen 4
C JOptionPane tritt manchmal bei Plugin in den Hintergrund Java Basics - Anfänger-Themen 2
das_leon JOptionPane Titel setzen Java Basics - Anfänger-Themen 1
J jOptionPane, Array und negative Zahlen Java Basics - Anfänger-Themen 2
B JOptionPane Java Basics - Anfänger-Themen 5
S JOptionPane mit Schleife in einem Ausgabefenster Java Basics - Anfänger-Themen 4
M jOptionPane mit if else Java Basics - Anfänger-Themen 16
K JOptionPane/catch/try/finally/if Java Basics - Anfänger-Themen 9
B JOptionPane Java Basics - Anfänger-Themen 4
N Erste Schritte JOptionPane - zerstörtes Layout Java Basics - Anfänger-Themen 2
D Erste Schritte JOptionPane Java Basics - Anfänger-Themen 7
S JOptionPane/Popup mit GUI Java Basics - Anfänger-Themen 2
R Fehler mit JOptionPane Java Basics - Anfänger-Themen 3
A Fehler bei der Speicherung von JOptionPane-Eingaben Java Basics - Anfänger-Themen 4
N Problem mit JOptionPane und Fenster-Fokus Java Basics - Anfänger-Themen 2
S Bild in JOptionPane Java Basics - Anfänger-Themen 1
L Strings in einem JOptionPane farbig Java Basics - Anfänger-Themen 2
E JOptionPane.showMessageDialog Fehler Java Basics - Anfänger-Themen 1
R Text Pane Aktualisierung erst nach JOptionPane Java Basics - Anfänger-Themen 10
J while (eingabe == "0") eingabe = JOptionPane.showInputDialog("...") Java Basics - Anfänger-Themen 5
S Konsolenausgabe ales JOptionPane? Java Basics - Anfänger-Themen 5
Z Darstellungsfehler mit JOptionPane Java Basics - Anfänger-Themen 2
L Interface JOptionPane Umwandlung Java Basics - Anfänger-Themen 10
L Anderes Layout für JOptionPane? Java Basics - Anfänger-Themen 6
S JoptionPane mit Umbruch Java Basics - Anfänger-Themen 21
Eileen Brüche addieren in Zwei Klassen mit JOptionPane Java Basics - Anfänger-Themen 4
S JOptionPane.showMessageDialog Java Basics - Anfänger-Themen 20
M JOptionPane 2 Angaben in ein Dialogfeld Java Basics - Anfänger-Themen 7
P Input/Output JOptionPane Fehlermeldung Catchen Java Basics - Anfänger-Themen 5
N Grafiken in JOptionPane Java Basics - Anfänger-Themen 3
T Benutzereingabe in form von string wieder ausgeben in JOptionPane Java Basics - Anfänger-Themen 14
B Codeschnipsel-Frage zu JOptionPane Java Basics - Anfänger-Themen 4
D Problem mit meinem ersten JOptionPane - Fatal exception occurred. Program will exit. Java Basics - Anfänger-Themen 6
H Focus auf Textfeld in JOptionPane Java Basics - Anfänger-Themen 2
J JOptionPane wiederholt aufrufen Java Basics - Anfänger-Themen 2
M JOptionPane null on closing with X Java Basics - Anfänger-Themen 6
M GUI JOptionPane - Parameter im Konstruktor festlegen? Java Basics - Anfänger-Themen 5
brunothg Internal JOptionPane Icon ändern Java Basics - Anfänger-Themen 5
J CLOSE in JOptionPane Java Basics - Anfänger-Themen 7
S JOptionPane Java Basics - Anfänger-Themen 29
F Alternative zu JoptionPane Java Basics - Anfänger-Themen 7
M Datentypen JOptionPane Java Basics - Anfänger-Themen 13
D JOptionPane ohne Klick-Aufforderung Java Basics - Anfänger-Themen 9
F jOptionPane (ConfirmDialog) aufrufen Java Basics - Anfänger-Themen 2
E JOptionPane Java Basics - Anfänger-Themen 11
J JOptionPane Datum Eingabe Java Basics - Anfänger-Themen 3
R JOptionPane funktioniert nicht mit Abbrechen Knopf Java Basics - Anfänger-Themen 16
H JOptionPane validieren Java Basics - Anfänger-Themen 3
D nur JOptionPane im Windows Style Java Basics - Anfänger-Themen 3
D Wählfenster(JOptionPane) Java Basics - Anfänger-Themen 3
N Hilfe!!! JOptionPane Java Basics - Anfänger-Themen 12
N javax.swing.JOptionPane einbauen? Java Basics - Anfänger-Themen 9
M Hilfe: JOptionPane.showInputDialog Java Basics - Anfänger-Themen 3
T JOptionPane mit .showInputDialog: Ergebnis abfragen? Java Basics - Anfänger-Themen 2
P JOptionPane.showInputDialog Java Basics - Anfänger-Themen 6
L ParentComponent von JOptionPane Java Basics - Anfänger-Themen 2
X JOptionPane.showMessageDialog(); - Import Befehl? Java Basics - Anfänger-Themen 4
C JOptionPane mit Icon Java Basics - Anfänger-Themen 5
G Problem mit JOptionPane. Java Basics - Anfänger-Themen 7
P JOptionPane mit Inhalt? Java Basics - Anfänger-Themen 2
M HTML in JOptionPane-Dialog aber keine Links Java Basics - Anfänger-Themen 6
A JOptionPane -> abbrechen -> NullPointerException Java Basics - Anfänger-Themen 4
M JOptionPane - Dialog Java Basics - Anfänger-Themen 6
C Problem mit JOptionPane.showInputDialog Java Basics - Anfänger-Themen 2
G Schleife mit JOptionPane Java Basics - Anfänger-Themen 6
C JOptionPane in Taskleiste anzeigen Java Basics - Anfänger-Themen 3
G JOptionPane.showInputDialog Java Basics - Anfänger-Themen 2
F JOptionPane selbst programmieren Java Basics - Anfänger-Themen 8
G Problem miT JOptionPane Java Basics - Anfänger-Themen 6
G JOptionPane.TOOL_TIP_TEXT_KEY wie verwendet man es? Java Basics - Anfänger-Themen 4
G JOptionPane wird nicht angezeigt Java Basics - Anfänger-Themen 3
I Problem bei JOptionPane Java Basics - Anfänger-Themen 3
B JOptionPane in vordergrund bringen Java Basics - Anfänger-Themen 2
G JOptionPane zentrieren? Java Basics - Anfänger-Themen 2
G JOptionPane Java Basics - Anfänger-Themen 4
P Probleme mit JOptionPane Java Basics - Anfänger-Themen 7
G JOptionPane Java Basics - Anfänger-Themen 6
B JOptionPane und das zweidimensianle Array Java Basics - Anfänger-Themen 2
M StackOverFlow bei JOptionPane? Java Basics - Anfänger-Themen 23
S JOptionPane.showInputDialog nur ein OK Button Java Basics - Anfänger-Themen 3
G JOptionPane Java Basics - Anfänger-Themen 8
D JOptionPane mit eigenem Icon Java Basics - Anfänger-Themen 2
A Bild einfügen in JOptionPane Java Basics - Anfänger-Themen 5
N JOptionPane.showInputDialog gibt null zurück Java Basics - Anfänger-Themen 9
D Thread und JOptionPane -> Problem Java Basics - Anfänger-Themen 6
D jOptionPane OK Button Java Basics - Anfänger-Themen 4
B JOptionPane mit mehr Eingabeflächen Java Basics - Anfänger-Themen 3
G JOptionPane Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben