JProgressBar in JOptionpane?

Greg50007

Aktives Mitglied
Hallo, ich hab mal wieder ein Problem.
Es geht um eine JProgressbar die nach drücken eines buttons angezeigt werden soll. Aber nunmal nicht auf dem frame sonder hervorgehoben wie ein JOptionPane. Leider bekomme ich da bis Jetzt nicht so hin. Erschwert kommt hinzu das die Bar erst nach Knopfdruck geladen und somit auch angezeigt werden soll... kann mir dazu wer ein kleines Beispiel schicken? Auf Wunsch kann ich auch meinen code mal schicken... der wird aber sehr verwirrend auf euch wirken.
LG.
Greg
 

mihe7

Top Contributor
Etwa so?
Java:
import javax.swing.*;

public class Test {

    public void run() {
        JProgressBar bar = new JProgressBar();
        JButton button = new JButton("...");
        SwingWorker<Void,Void> worker = new SwingWorker<Void,Void>() {
            @Override
            public Void doInBackground() {
                try {
                    for (int i = 0; i < 100; i++) {
                        Thread.sleep(100);
                        setProgress(i);
                    }
                } catch (InterruptedException ex) {}
                return null;
            }
        };

        worker.addPropertyChangeListener(l ->
            bar.setValue(worker.getProgress()));

        button.addActionListener(e -> { worker.execute(); });
        JPanel p = new JPanel();
        p.add(bar);
        p.add(button);
        JOptionPane.showMessageDialog(null, p);
        System.exit(0);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(() -> new Test().run());
    }
}
 

Greg50007

Aktives Mitglied
Am sich ja... Aber leider scheitert auch der Versuch, da wenn ich das Panel dem frame hinzufügen das Haupt Panel nichtmehr gezeigt wird.
Ich glaube ich gebe das auf und nehme einfach einen JOptionPane...
 

Greg50007

Aktives Mitglied
Also ich habe ein jpanel auf einem jframe.
Auf dem Panel ist ein Button. Wird der gedrückt soll ein ladebalkeb in einem kleineren Fenster (wie bei einem JOptionpane) erscheinen. Also ein separates Fenster.
 

Greg50007

Aktives Mitglied
Ich bin mal so frei und posten den code einfach...
relevant sind die Kommentierten die wie folgt aussehen.
//
//
//
//hier
//
//
//

Java:
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Calendar;

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextField;

public class Bearbeiten {
    public static String titel;
    public static String erscheinungsjahr;
    public static String laufzeit;
    public static String fsk;
    public static String server;
    public static int anz = 0;
    static DVDVerwaltung dvdv;

    public static JTextField name;
    public static JTextField jahr;
    public static JTextField zeit;
    public static JTextField urPfad;
    public static JTextField zielPfad;
    @SuppressWarnings("rawtypes")
    public static JComboBox alter;
    @SuppressWarnings("rawtypes")
    public static JComboBox ort;
    static JFileChooser chooser = new JFileChooser("Auswählen");

    public static JProgressBar laden;
    final static JFrame frame = new JFrame("Eintragen");
    public static JPanel p;
    // static String pfad = "F";
    static String pfad = "I";
    public static boolean first = false;
    static ImageIcon zurück = new ImageIcon(pfad + ":\\Lister\\Zurück.png");
    static ImageIcon Menü = new ImageIcon(pfad + ":\\Lister\\Menü.jpg");
    static int l = Toolkit.getDefaultToolkit().getScreenSize().width;
    static int b = Toolkit.getDefaultToolkit().getScreenSize().height;

    @SuppressWarnings({ "rawtypes", "unchecked", "static-access" })
    public static void layout() throws Exception {
        Menü.setImage(Menü.getImage().getScaledInstance(l / 50, b / 34, Image.SCALE_DEFAULT));
        zurück.setImage(zurück.getImage().getScaledInstance(l / 65, b / 44, Image.SCALE_DEFAULT));

        String[] fsklist = { "0", "6", "12", "16", "18" };
        String[] serverlist = { "Blu-Ray", "Media 1", "Media 2", "Media 3", "Media 4", "Media 5", "Media 6", "Media 7",
                "Media 8", "FP1-C 200-EG", "FP1-C 200-KG" };

        int align1 = FlowLayout.CENTER;
        JPanel panel1 = new JPanel(new FlowLayout(align1));
        panel1.setPreferredSize(new Dimension(l, b));
        JLabel abstandOben1 = new JLabel(" ");
        abstandOben1.setPreferredSize(new Dimension(l, b / 10));
        JLabel abstand1 = new JLabel(" ");
        abstand1.setPreferredSize(new Dimension(l, b / 20));
        JLabel abstand2 = new JLabel(" ");
        abstand2.setPreferredSize(new Dimension(l, b / 20));
        JLabel abstand3 = new JLabel(" ");
        abstand3.setPreferredSize(new Dimension(l, b / 20));
        JLabel abstand4 = new JLabel(" ");
        abstand4.setPreferredSize(new Dimension(l, b / 20));
        JLabel abstand5 = new JLabel(" ");
        abstand5.setPreferredSize(new Dimension(l, b / 20));
        JLabel abstand6 = new JLabel(" ");
        abstand6.setPreferredSize(new Dimension(l / 2, b / 20));

//
//
//
//Hier soll die Progressbar hin. Diese wird durch den Button übernehmen aktiviert!
//
//
//

        JMenuBar menuBar = new JMenuBar();

        JMenu menu = new JMenu();
        menu.setIcon(Menü);

        JMenuItem Zurück = new JMenuItem("    Zurück");
        Zurück.setIcon(zurück);
        Zurück.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                Appl.main(null);
                frame.setVisible(false);

            }
        });

        JButton speichern = new JButton("Speichern");

        JLabel Ebuttons = new JLabel("     Auto Ergänzung");

        JRadioButtonMenuItem Eon = new JRadioButtonMenuItem("An");
        JRadioButtonMenuItem Eoff = new JRadioButtonMenuItem("Aus");
        System.setProperty("weiß", "#FFFAFA");
        ButtonGroup Eswicher = new ButtonGroup();
        Eswicher.add(Eon);
        Eon.setUI(new StayOpenRadioButtonMenuItemUI());
        Eswicher.add(Eoff);
        Eoff.setUI(new StayOpenRadioButtonMenuItemUI());
        Eoff.setSelected(true);

        JButton übernehmen = new JButton("Übernehmen");
        übernehmen.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                chooser.setDialogTitle("Zu verschiebende Datei auswählen");
                chooser.showOpenDialog(panel1);
               

                try {
                    FileReader fr = new FileReader(chooser.getSelectedFile());
                    BufferedReader br = new BufferedReader(fr);
                    String test2 = "";
                    anz = 0;

                    while ((test2 = br.readLine()) != null) {
                        anz++;
                    }
                    System.out.println(anz);

                    laden = new JProgressBar(0, anz);
                    laden.setStringPainted(true);

                    gedrückt();
                                //
                                //
                                //Hier wird die länge der Progressbar festgestellt.
                                //gedrückt() soll den fortschritt generieren.
                                //
                                //
                                //
                } catch (Exception e2) {

                }

            }
        });

        // titel
        name = new JTextField();
        Font bigFont = name.getFont().deriveFont(b / 40f);
        JLabel t = new JLabel("Titel:");
        t.setFont(bigFont);
        t.setPreferredSize(new Dimension(l / 10, b / 20));
        name.setFont(bigFont);
        name.setPreferredSize(new Dimension(l / 5, b / 20));

        urPfad = new JTextField("Bitte Pfad auswählen");
        urPfad.setPreferredSize(new Dimension(l / 10, b / 50));

        zielPfad = new JTextField("Bitte Zielpfad auswählen");
        zielPfad.setPreferredSize(new Dimension(l / 10, b / 50));

        // erscheinungsjahr
        jahr = new JTextField();
        JLabel j = new JLabel("Erscheinungsjahr:");
        j.setFont(bigFont);
        j.setPreferredSize(new Dimension(l / 5, b / 20));
        jahr.setFont(bigFont);
        jahr.setPreferredSize(new Dimension(l / 10, b / 20));
        name.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyReleased(KeyEvent e) {
                int key = e.getKeyCode();

                if (key == KeyEvent.VK_ENTER) {
                    jahr.requestFocus();
                }

            }

            @Override
            public void keyPressed(KeyEvent e) {
            }
        });

        // laufzeit
        zeit = new JTextField();
        JLabel z = new JLabel("Laufzeit:");
        z.setFont(bigFont);
        z.setPreferredSize(new Dimension(l / 5, b / 20));
        zeit.setFont(bigFont);
        zeit.setPreferredSize(new Dimension(l / 10, b / 20));
        jahr.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyReleased(KeyEvent e) {
                int key = e.getKeyCode();

                if (key == KeyEvent.VK_ENTER) {
                    zeit.requestFocus();
                }

            }

            @Override
            public void keyPressed(KeyEvent e) {
            }
        });

        // fsk
        alter = new JComboBox(fsklist);
        JLabel a = new JLabel("FSK:");
        a.setFont(bigFont);
        a.setPreferredSize(new Dimension(l / 5, b / 20));
        alter.setFont(bigFont);
        alter.setPreferredSize(new Dimension(l / 10, b / 20));
        zeit.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyReleased(KeyEvent e) {
                int key = e.getKeyCode();

                if (key == KeyEvent.VK_ENTER) {
                    alter.requestFocus();
                }

            }

            @Override
            public void keyPressed(KeyEvent e) {
            }
        });

        // Server

        ort = new JComboBox(serverlist);
        JLabel o = new JLabel("Server:");
        o.setFont(bigFont);
        o.setPreferredSize(new Dimension(l / 10, b / 20));
        ort.setFont(bigFont);
        ort.setPreferredSize(new Dimension(l / 5, b / 20));
        alter.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyReleased(KeyEvent e) {
                int key = e.getKeyCode();

                if (key == KeyEvent.VK_ENTER) {
                    ort.requestFocus();
                }

            }

            @Override
            public void keyPressed(KeyEvent e) {
            }
        });

        Eon.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                first = true;
                System.out.println("an");
                jahr.addFocusListener(new FocusListener() {

                    @Override
                    public void focusLost(FocusEvent e) {
                        first = false;
                    }

                    @Override
                    public void focusGained(FocusEvent e) {
                        if (Eon.isSelected()) {
                            if (first == true) {
                                jahr.setText("");
                                zeit.setText("");
                                alter.setSelectedIndex(0);
                                try {
                                    Rechtschreibkorrekktur.rechtschreibkorrektur();
                                } catch (Exception e1) {
                                    e1.printStackTrace();
                                }
                                if (jahr.getText().equals("")) {
                                    try {
                                        AutoErgänzung.fehler();
                                    } catch (Exception e1) {
                                        e1.printStackTrace();
                                    }
                                }
                            }
                        }
                    }
                });

            }
        });

        // Speichern
        speichern.setFont(bigFont);
        ort.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyReleased(KeyEvent e) {
                int key = e.getKeyCode();

                if (key == KeyEvent.VK_ENTER) {
                    speichern.requestFocus();
                }

            }

            @Override
            public void keyPressed(KeyEvent e) {
            }
        });
        speichern.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                if (name.getText().equals(null) || name.getText().equals("")) {
                    System.out.println("Error");
                } else {
                    titel = name.getText();
                    erscheinungsjahr = jahr.getText();
                    laufzeit = zeit.getText();
                    fsk = (String) alter.getSelectedItem();
                    server = (String) ort.getSelectedItem();
                    if (titel.contains("€")) {
                        titel = titel.replaceAll("€", "Euro");
                    }

                    first = true;
                    name.setText("");
                    jahr.setText("");
                    zeit.setText("");
                    alter.setSelectedIndex(0);
                    ort.setSelectedIndex(0);
                    name.requestFocus();

                    Appl.dvdv.dvdEinfuegen(new DVD(titel, erscheinungsjahr, laufzeit, fsk, server));
                    Thread sicherung = new Speichern();
                    sicherung.start();
                }
            }

        });

        menu.add(Zurück);
        menu.addSeparator();
        menu.add(Ebuttons);
        menu.addSeparator();
        menu.add(Eon);
        menu.add(Eoff);
        menu.addSeparator();
        menu.add(übernehmen);
        menuBar.add(menu);

        panel1.add(abstandOben1);
        panel1.add(t);
        panel1.add(new JScrollPane(name));
        panel1.add(abstand1);

        panel1.add(j);
        panel1.add(new JScrollPane(jahr));
        panel1.add(abstand2);

        panel1.add(z);
        panel1.add(new JScrollPane(zeit));
        panel1.add(abstand3);

        panel1.add(a);
        panel1.add(new JScrollPane(alter));
        panel1.add(abstand4);

        panel1.add(o);
        panel1.add(new JScrollPane(ort));
        panel1.add(abstand5);

        panel1.add(abstand6);
        panel1.add(speichern);


        frame.setJMenuBar(menuBar);
        frame.add(panel1);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

    }

    public static void gedrückt() {
        //
        //
        //ab hier soll die Progressbar erscheinen
        //die methode existiert, da ja das frame und co. vorher eneriert werden müssen.
        //
        //
       
        try {

            FileReader fr = new FileReader(chooser.getSelectedFile());
            BufferedReader br = new BufferedReader(fr);

            String test = "";
           
            for(int h = 0; h < anz; h++){
               
                test= br.readLine();
                test = test.substring(4, test.length());
               
               
                System.out.println(test);
                if (test.contains("Blu-Ray")) {
                    server = "Blu-Ray";
                } else if (test.contains("Media1")) {
                    server = "Media 1";
                } else if (test.contains("Media2")) {
                    server = "Media 2";
                } else if (test.contains("Media3")) {
                    server = "Media 3";
                } else if (test.contains("Media4")) {
                    server = "Media 4";
                } else if (test.contains("Media5")) {
                    server = "Media 5";
                } else if (test.contains("Media6")) {
                    server = "Media 6";
                } else if (test.contains("Media7")) {
                    server = "Media 7";
                } else if (test.contains("Media8")) {
                    server = "Media 8";
                } else if (test.contains("FP1-C 200-EG")) {
                    server = "FP1-C 200-EG";
                } else if (test.contains("FP1-C 200-KG")) {
                    server = "FP1-C 200-KG";
                }

                if (test.contains("FSK 0")) {
                    fsk = "0";
                } else if (test.contains("FSK 6")) {
                    fsk = "6";
                } else if (test.contains("FSK 12")) {
                    fsk = "12";
                } else if (test.contains("FSK 16")) {
                    fsk = "16";
                } else if (test.contains("FSK 18")) {
                    fsk = "18";
                }

                if (test.contains("Min. ")) {
                    String[] z = test.split("Min. ");
                    laufzeit = z[0].substring(z[0].length() - 4, z[0].length()).replace(" ", "");
                } else {
                    laufzeit = "";
                }

                for (int i = 1900; i < Calendar.getInstance().get(Calendar.YEAR) + 1; i++) {
                    if (test.contains(Integer.toString(i))) {
                        erscheinungsjahr = Integer.toString(i);
                        break;
                    } else {
                        erscheinungsjahr = "";
                    }
                }

                String[] t = test.split("\\(");

                titel = t[0];

                if (titel.contains(fsk)) {
                    titel = titel.replace(fsk, "");
                }
                if (titel.contains(erscheinungsjahr)) {
                    titel = titel.replace(erscheinungsjahr, "");
                }
                if (titel.contains(server.replace(" ", ""))) {
                    titel = titel.replace(server.replace(" ", ""), "");
                }

                if (titel.contains("        ")) {
                    titel = titel.replace("        ", "");
                }

                if (titel.contains("€")) {
                    titel = titel.replaceAll("€", "Euro");
                }

                Appl.dvdv.dvdEinfuegen(new DVD(titel, erscheinungsjahr, laufzeit, fsk, server));
                Thread sicherung = new Speichern();
                sicherung.start();

//                laden.setValue(h);
//                Thread.sleep(Appl.dvdv.counter / 3);
                JOptionPane.showMessageDialog(null, "Daten werden übernommen...");

            }

        } catch (Exception e4) {
            System.out.println(e4 + "baum");

        }

    }

}

Danke schonmal für alle hilfsversuche!
 

Greg50007

Aktives Mitglied
Also ein Stück bin ich vorran gekommen... Glaube ich.
Das Problem ist das ich nicht weiß wie ich eine for Schleife zu einem Task umforme... und wie lasse ich das dann anzeigen?
 

Greg50007

Aktives Mitglied
Ja habe ich. SIeht bei mir jetzt so aus:
Java:
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.Calendar;

import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextField;
import javax.swing.ProgressMonitor;

public class Bearbeiten {
    public static String titel;
    public static String erscheinungsjahr;
    public static String laufzeit;
    public static String fsk;
    public static String server;
    public static int anz = 0;
    static DVDVerwaltung dvdv;

    public static JTextField name;
    public static JTextField jahr;
    public static JTextField zeit;
    public static JTextField urPfad;
    public static JTextField zielPfad;
    @SuppressWarnings("rawtypes")
    public static JComboBox alter;
    @SuppressWarnings("rawtypes")
    public static JComboBox ort;
    static JFileChooser chooser = new JFileChooser("Auswählen");

    public static JProgressBar laden;
    final static JFrame frame = new JFrame("Eintragen");
    public static JPanel p;
    // static String pfad = "F";
    static String pfad = "I";
    public static boolean first = false;
    static ImageIcon zurück = new ImageIcon(pfad + ":\\Lister\\Zurück.png");
    static ImageIcon Menü = new ImageIcon(pfad + ":\\Lister\\Menü.jpg");
    static int l = Toolkit.getDefaultToolkit().getScreenSize().width;
    static int b = Toolkit.getDefaultToolkit().getScreenSize().height;

    @SuppressWarnings({ "rawtypes", "unchecked", "static-access" })
    public static void layout() throws Exception {
        Menü.setImage(Menü.getImage().getScaledInstance(l / 50, b / 34, Image.SCALE_DEFAULT));
        zurück.setImage(zurück.getImage().getScaledInstance(l / 65, b / 44, Image.SCALE_DEFAULT));

        String[] fsklist = { "0", "6", "12", "16", "18" };
        String[] serverlist = { "Blu-Ray", "Media 1", "Media 2", "Media 3", "Media 4", "Media 5", "Media 6", "Media 7",
                "Media 8", "FP1-C 200-EG", "FP1-C 200-KG" };

        int align1 = FlowLayout.CENTER;
        JPanel panel1 = new JPanel(new FlowLayout(align1));
        panel1.setPreferredSize(new Dimension(l, b));
        JLabel abstandOben1 = new JLabel(" ");
        abstandOben1.setPreferredSize(new Dimension(l, b / 10));
        JLabel abstand1 = new JLabel(" ");
        abstand1.setPreferredSize(new Dimension(l, b / 20));
        JLabel abstand2 = new JLabel(" ");
        abstand2.setPreferredSize(new Dimension(l, b / 20));
        JLabel abstand3 = new JLabel(" ");
        abstand3.setPreferredSize(new Dimension(l, b / 20));
        JLabel abstand4 = new JLabel(" ");
        abstand4.setPreferredSize(new Dimension(l, b / 20));
        JLabel abstand5 = new JLabel(" ");
        abstand5.setPreferredSize(new Dimension(l, b / 20));
        JLabel abstand6 = new JLabel(" ");
        abstand6.setPreferredSize(new Dimension(l / 2, b / 20));

        JMenuBar menuBar = new JMenuBar();

        JMenu menu = new JMenu();
        menu.setIcon(Menü);

        JMenuItem Zurück = new JMenuItem("    Zurück");
        Zurück.setIcon(zurück);
        Zurück.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                Appl.main(null);
                frame.setVisible(false);

            }
        });

        JButton speichern = new JButton("Speichern");

        JLabel Ebuttons = new JLabel("     Auto Ergänzung");

        JRadioButtonMenuItem Eon = new JRadioButtonMenuItem("An");
        JRadioButtonMenuItem Eoff = new JRadioButtonMenuItem("Aus");
        System.setProperty("weiß", "#FFFAFA");
        ButtonGroup Eswicher = new ButtonGroup();
        Eswicher.add(Eon);
        Eon.setUI(new StayOpenRadioButtonMenuItemUI());
        Eswicher.add(Eoff);
        Eoff.setUI(new StayOpenRadioButtonMenuItemUI());
        Eoff.setSelected(true);

        JButton übernehmen = new JButton("Übernehmen");
        übernehmen.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                chooser.setDialogTitle("Zu verschiebende Datei auswählen");
                chooser.showOpenDialog(panel1);

                try {
                    FileReader fr = new FileReader(chooser.getSelectedFile());
                    BufferedReader br = new BufferedReader(fr);
                    String test2 = "";
                    anz = 0;

                    while ((test2 = br.readLine()) != null) {
                        anz++;
                    }
                    System.out.println(anz);

                    ProgressMonitor laden = new ProgressMonitor(panel1, "Daten werden übernommen", "", 0, anz);
                    laden.setProgress(anz);//Hier erstelle ich den monitor.
                   

                    gedrückt();
                } catch (Exception e2) {

                }

            }
        });

        // titel
        name = new JTextField();
        Font bigFont = name.getFont().deriveFont(b / 40f);
        JLabel t = new JLabel("Titel:");
        t.setFont(bigFont);
        t.setPreferredSize(new Dimension(l / 10, b / 20));
        name.setFont(bigFont);
        name.setPreferredSize(new Dimension(l / 5, b / 20));

        urPfad = new JTextField("Bitte Pfad auswählen");
        urPfad.setPreferredSize(new Dimension(l / 10, b / 50));

        zielPfad = new JTextField("Bitte Zielpfad auswählen");
        zielPfad.setPreferredSize(new Dimension(l / 10, b / 50));

        // erscheinungsjahr
        jahr = new JTextField();
        JLabel j = new JLabel("Erscheinungsjahr:");
        j.setFont(bigFont);
        j.setPreferredSize(new Dimension(l / 5, b / 20));
        jahr.setFont(bigFont);
        jahr.setPreferredSize(new Dimension(l / 10, b / 20));
        name.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyReleased(KeyEvent e) {
                int key = e.getKeyCode();

                if (key == KeyEvent.VK_ENTER) {
                    jahr.requestFocus();
                }

            }

            @Override
            public void keyPressed(KeyEvent e) {
            }
        });

        // laufzeit
        zeit = new JTextField();
        JLabel z = new JLabel("Laufzeit:");
        z.setFont(bigFont);
        z.setPreferredSize(new Dimension(l / 5, b / 20));
        zeit.setFont(bigFont);
        zeit.setPreferredSize(new Dimension(l / 10, b / 20));
        jahr.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyReleased(KeyEvent e) {
                int key = e.getKeyCode();

                if (key == KeyEvent.VK_ENTER) {
                    zeit.requestFocus();
                }

            }

            @Override
            public void keyPressed(KeyEvent e) {
            }
        });

        // fsk
        alter = new JComboBox(fsklist);
        JLabel a = new JLabel("FSK:");
        a.setFont(bigFont);
        a.setPreferredSize(new Dimension(l / 5, b / 20));
        alter.setFont(bigFont);
        alter.setPreferredSize(new Dimension(l / 10, b / 20));
        zeit.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyReleased(KeyEvent e) {
                int key = e.getKeyCode();

                if (key == KeyEvent.VK_ENTER) {
                    alter.requestFocus();
                }

            }

            @Override
            public void keyPressed(KeyEvent e) {
            }
        });

        // Server

        ort = new JComboBox(serverlist);
        JLabel o = new JLabel("Server:");
        o.setFont(bigFont);
        o.setPreferredSize(new Dimension(l / 10, b / 20));
        ort.setFont(bigFont);
        ort.setPreferredSize(new Dimension(l / 5, b / 20));
        alter.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyReleased(KeyEvent e) {
                int key = e.getKeyCode();

                if (key == KeyEvent.VK_ENTER) {
                    ort.requestFocus();
                }

            }

            @Override
            public void keyPressed(KeyEvent e) {
            }
        });

        Eon.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                first = true;
                System.out.println("an");
                jahr.addFocusListener(new FocusListener() {

                    @Override
                    public void focusLost(FocusEvent e) {
                        first = false;
                    }

                    @Override
                    public void focusGained(FocusEvent e) {
                        if (Eon.isSelected()) {
                            if (first == true) {
                                jahr.setText("");
                                zeit.setText("");
                                alter.setSelectedIndex(0);
                                try {
                                    Rechtschreibkorrekktur.rechtschreibkorrektur();
                                } catch (Exception e1) {
                                    e1.printStackTrace();
                                }
                                if (jahr.getText().equals("")) {
                                    try {
                                        AutoErgänzung.fehler();
                                    } catch (Exception e1) {
                                        e1.printStackTrace();
                                    }
                                }
                            }
                        }
                    }
                });

            }
        });

        // Speichern
        speichern.setFont(bigFont);
        ort.addKeyListener(new KeyListener() {

            @Override
            public void keyTyped(KeyEvent e) {
            }

            @Override
            public void keyReleased(KeyEvent e) {
                int key = e.getKeyCode();

                if (key == KeyEvent.VK_ENTER) {
                    speichern.requestFocus();
                }

            }

            @Override
            public void keyPressed(KeyEvent e) {
            }
        });
        speichern.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {

                if (name.getText().equals(null) || name.getText().equals("")) {
                    System.out.println("Error");
                } else {
                    titel = name.getText();
                    erscheinungsjahr = jahr.getText();
                    laufzeit = zeit.getText();
                    fsk = (String) alter.getSelectedItem();
                    server = (String) ort.getSelectedItem();
                    if (titel.contains("€")) {
                        titel = titel.replaceAll("€", "Euro");
                    }

                    first = true;
                    name.setText("");
                    jahr.setText("");
                    zeit.setText("");
                    alter.setSelectedIndex(0);
                    ort.setSelectedIndex(0);
                    name.requestFocus();

                    Appl.dvdv.dvdEinfuegen(new DVD(titel, erscheinungsjahr, laufzeit, fsk, server));
                    Thread sicherung = new Speichern();
                    sicherung.start();
                }
            }

        });

        menu.add(Zurück);
        menu.addSeparator();
        menu.add(Ebuttons);
        menu.addSeparator();
        menu.add(Eon);
        menu.add(Eoff);
        menu.addSeparator();
        menu.add(übernehmen);
        menuBar.add(menu);

        panel1.add(abstandOben1);
        panel1.add(t);
        panel1.add(new JScrollPane(name));
        panel1.add(abstand1);

        panel1.add(j);
        panel1.add(new JScrollPane(jahr));
        panel1.add(abstand2);

        panel1.add(z);
        panel1.add(new JScrollPane(zeit));
        panel1.add(abstand3);

        panel1.add(a);
        panel1.add(new JScrollPane(alter));
        panel1.add(abstand4);

        panel1.add(o);
        panel1.add(new JScrollPane(ort));
        panel1.add(abstand5);

        panel1.add(abstand6);
        panel1.add(speichern);

        frame.setJMenuBar(menuBar);
        frame.add(panel1);
        frame.pack();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

    }

    public static void gedrückt() {

        try {

            FileReader fr = new FileReader(chooser.getSelectedFile());
            BufferedReader br = new BufferedReader(fr);

            String test = "";

            for (int h = 0; h < anz; h++) {// die schleife im background

                test = br.readLine();
                test = test.substring(4, test.length());

                System.out.println(test);
                if (test.contains("Blu-Ray")) {
                    server = "Blu-Ray";
                } else if (test.contains("Media1")) {
                    server = "Media 1";
                } else if (test.contains("Media2")) {
                    server = "Media 2";
                } else if (test.contains("Media3")) {
                    server = "Media 3";
                } else if (test.contains("Media4")) {
                    server = "Media 4";
                } else if (test.contains("Media5")) {
                    server = "Media 5";
                } else if (test.contains("Media6")) {
                    server = "Media 6";
                } else if (test.contains("Media7")) {
                    server = "Media 7";
                } else if (test.contains("Media8")) {
                    server = "Media 8";
                } else if (test.contains("FP1-C 200-EG")) {
                    server = "FP1-C 200-EG";
                } else if (test.contains("FP1-C 200-KG")) {
                    server = "FP1-C 200-KG";
                }

                if (test.contains("FSK 0")) {
                    fsk = "0";
                } else if (test.contains("FSK 6")) {
                    fsk = "6";
                } else if (test.contains("FSK 12")) {
                    fsk = "12";
                } else if (test.contains("FSK 16")) {
                    fsk = "16";
                } else if (test.contains("FSK 18")) {
                    fsk = "18";
                }

                if (test.contains("Min. ")) {
                    String[] z = test.split("Min. ");
                    laufzeit = z[0].substring(z[0].length() - 4, z[0].length()).replace(" ", "");
                } else {
                    laufzeit = "";
                }

                for (int i = 1900; i < Calendar.getInstance().get(Calendar.YEAR) + 1; i++) {
                    if (test.contains(Integer.toString(i))) {
                        erscheinungsjahr = Integer.toString(i);
                        break;
                    } else {
                        erscheinungsjahr = "";
                    }
                }

                String[] t = test.split("\\(");

                titel = t[0];

                if (titel.contains(fsk)) {
                    titel = titel.replace(fsk, "");
                }
                if (titel.contains(erscheinungsjahr)) {
                    titel = titel.replace(erscheinungsjahr, "");
                }
                if (titel.contains(server.replace(" ", ""))) {
                    titel = titel.replace(server.replace(" ", ""), "");
                }

                if (titel.contains("        ")) {
                    titel = titel.replace("        ", "");
                }

                if (titel.contains("€")) {
                    titel = titel.replaceAll("€", "Euro");
                }

                Appl.dvdv.dvdEinfuegen(new DVD(titel, erscheinungsjahr, laufzeit, fsk, server));
                Thread sicherung = new Speichern();
                sicherung.start();

                 Thread.sleep(Appl.dvdv.counter / 3);


            }

        } catch (Exception e4) {
            System.out.println(e4 + "baum");

        }

    }

}

mittig ist der monitor und ganz unten die for schleife... aber wie lasse ich den jetzt anzeigen?
 

mihe7

Top Contributor
  1. Wenn Du in einer GUI-Anwendung Arbeit ausführst, die lange dauert, musst Du das in einem separaten Thread machen - ansonsten "friert" das UI ein.
  2. Um die Sache etwas leichter zu machen, gibt es in Swing den SwingWorker.
  3. Die Klasse Task aus dem Beispiel erweitert den SwingWorker, das kannst Du also übernehmen.
  4. Die Arbeit, die lange dauert, musst Du in die Methode "doInBackground" verlagern. Den Fortschritt setzt du dort mittels setProgress (s. Beispiel)
  5. Um den Fortschritt an den ProgressMonitor weitergeben zu können, brauchst Du einen PropertyChangeListener (s. Beispiel)
  6. Alles, was Du dann machen musst ist: ProgressMonitor erstellen, Listener einrichten, Task starten - der ProgressMonitor poppt dann automatisch auf, wenn der Task länger dauert. Wird der Maximalwert des Fortschritts (100 %) erreicht, schließt er sich automatisch.
Zieh Dir nochmal das Beispiel von Oracle rein.
 

Greg50007

Aktives Mitglied
ES tut mir leid... ich glaube ich muss passen... bis jetzt konnte ich mir immer helfen. und auch wenn das vermutlich total simpel ist, ich komme nicht dahinter wie ich das bei mir umsetzten soll.
Dennoch vielen dank für die hilfe!
 

mihe7

Top Contributor
Nein. Du kannst mal versuchen, im Konstruktor ein Panel zu übergeben, dessen preferredSize Du vorher festgelegt hast.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
G JProgressBar wird nicht angezeigt. Allgemeine Java-Themen 2
T JProgressbar ändert werte nicht Allgemeine Java-Themen 28
R JProgressBar Allgemeine Java-Themen 14
V JProgressbar, woher Prozentwerte? Allgemeine Java-Themen 2
C JProgressbar an ExecutorService koppeln Allgemeine Java-Themen 5
T JProgressBar Allgemeine Java-Themen 9
F JProgressBar benutzen Allgemeine Java-Themen 5
S Probleme mit JProgressbar! Allgemeine Java-Themen 2
J JOptionPane - Leereingabe, Wiederholen Allgemeine Java-Themen 10
Aruetiise Swing JOptionPane ohne denn Thread zu pausieren Allgemeine Java-Themen 1
I CountDown wird durch JOptionPane unterbrochen Allgemeine Java-Themen 11
M Hilfe mit JOptionPane Allgemeine Java-Themen 2
M "JOptionPane.showMessageDialog" funktioniert nicht in jar-Archive. Allgemeine Java-Themen 4
D JOptionPane nur 1 Input möglich? Allgemeine Java-Themen 6
T JOptionPane.showMessageDialog() bleibt hängen Allgemeine Java-Themen 5
D Frage zu JOptionPane Allgemeine Java-Themen 2
T IF Abfrage + YES_NO Option mittels JOptionPane Allgemeine Java-Themen 3
G joptionpane problem Allgemeine Java-Themen 8
clemente Code OK? - JOptionPane ruiniert KDE Sitzung Allgemeine Java-Themen 5
G Mouselistener geht aber danach Fehler bei JOptionPane Allgemeine Java-Themen 4
U JFrame, JOptionPane - vor dem Schließen Benutzer fragen Allgemeine Java-Themen 10
U html in JOptionPane - wie? Allgemeine Java-Themen 5
C JOptionPane, Parentframe übergeben wie? Allgemeine Java-Themen 5

Ähnliche Java Themen

Neue Themen


Oben