javaman Geschrieben 19. Juni 2002 Teilen Geschrieben 19. Juni 2002 Wie kann ich folgende Datei an eine end Button hängen? /* Ende.java */ import java.io.*; import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Ende extends JFrame { private File file; private JButton abbrechen; private JButton ja; private JButton nein; private JLabel programm; private JLabel speichern; public Ende() { super("Programm beeneden"); /** Erstellen einer schließ Funktion */ addWindowListener(new WindowClosingAdapter(true)); Container cp = getContentPane(); cp.setLayout(new BorderLayout()); JPanel panel = new JPanel(); JPanel panel1 = new JPanel(); JPanel panel2 = new JPanel(); nein = new JButton("Nein"); nein.addActionListener(new CEnde()); ja = new JButton("Ja"); ja.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { saveFile1(); } }); abbrechen = new JButton("Abbrechen"); programm = new JLabel("Wollen Sie das Programm wirklich beenden?"); speichern = new JLabel("Aktuelle Änderungen speichern?"); panel1.add(ja); panel1.add(nein); panel1.add(abbrechen); getContentPane().add(panel1, BorderLayout.SOUTH); panel2.add(programm); getContentPane().add(panel2, BorderLayout.NORTH); panel.add(speichern); getContentPane().add(panel, BorderLayout.CENTER); } /** Button "Speichern unter" JFileChooser */ private void saveFile1() { JFileChooser jfc = new JFileChooser(); jfc.setCurrentDirectory(new File("c:/java")); int result = jfc.showSaveDialog(this); if (result == JFileChooser.APPROVE_OPTION) { File f = jfc.getSelectedFile(); writeFile1(f); } } /** Button "Speichern unter" Writer */ private void writeFile1(File f) { String line; PrintWriter pw; System.out.println(); try { pw = new PrintWriter(new FileWriter(f)); pw.println(); pw.close(); } catch(IOException ioe) { System.out.println("Probleme beim Lesen"); } } /** Main-Function */ public static void main(String[] args) { /** Windows-Ansicht anstatt der Swing-Ansicht */ try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel"); } catch (Exception e) { System.err.println("Die ansicht kann nicht geändert werden: " + e); } /** Fenster erzeugen, Größe, sichtbar */ Ende frame = new Ende(); frame.setLocation(150, 150); frame.setSize(300, 110); frame.setVisible(true); } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 19. Juni 2002 Teilen Geschrieben 19. Juni 2002 Super, 120 Zeilen Code, für etwas was man mit 6 Zeilen erledigen kann. Wieso schaust du dir die Ratschläge in deinem anderen Thread nicht an. JOptionPane op = new JOptionPane("Wirklich beendet?", JOptionPane.QUESTION_MESSAGE, JOptionPane.YES_NO_OPTION); JDialog dialog = op.createDialog(this.getParent(), "Programm beenden..." ); dialog.show(); if(((Integer)op.getValue()).intValue()==JOptionPane.YES_OPTION{ System.exit(-1); }[/PHP] Das ganze muss nun in den Actionlistener deines Buttons: [PHP]jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { //Genau hier hin... } }); Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
javaman Geschrieben 19. Juni 2002 Autor Teilen Geschrieben 19. Juni 2002 der bringt aber eine Fehlermeldung bei der getParent() methode Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jaraz Geschrieben 19. Juni 2002 Teilen Geschrieben 19. Juni 2002 Da muss halt der Container deines Buttons rein. Du kannst z.B. this.getParent() durch SwingUtilities.windowForComponent(mein_Button) ersetzen. Der Button muss dann aber als Klassenvariable deklariert sein. Gruß Jaraz Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
javaman Geschrieben 19. Juni 2002 Autor Teilen Geschrieben 19. Juni 2002 Danke, jetzt geht es. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.