Veröffentlicht 19. Juni 200223 j 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); } }
19. Juni 200223 j 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
19. Juni 200223 j 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
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.