javaman Geschrieben 19. Juni 2002 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); } }
Jaraz Geschrieben 19. Juni 2002 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
javaman Geschrieben 19. Juni 2002 Autor Geschrieben 19. Juni 2002 der bringt aber eine Fehlermeldung bei der getParent() methode
Jaraz Geschrieben 19. Juni 2002 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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden