Java: ProgressBar



  • Hallo

    So ersteinmal der Test.....

    import java.awt.*;
    import java.awt.Color;
    import javax.swing.*;
    import java.awt.Container;
    
    /**
     * @author BadMonkey
     *
     * To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Generation - Code and Comments
     */
    public class FrameTest1 extends JFrame
    {
    	JFrame frame = null;
    	JProgressBar bar = null;
    	JPanel jp1 = new JPanel();
    	JTextField jtf1 = new JTextField();
    	Image image = null;
    	MediaTracker mt = null;
    	Canvas c = new Canvas()	{
    		public void paint(Graphics g)
    		{
    			if(image != null)
    			{	
    			     g.drawImage(image, 0, 0, c);
    			}
    		}
    	};
    
    	public FrameTest1()
    	{
    		super("Was denn das");
    
    		frame = this;
    		Container con = frame.getContentPane();
    		bar = new JProgressBar(0, 10);
    
    		mt = new MediaTracker(frame);
    		image = Toolkit.getDefaultToolkit().getImage("test.jpg");
    		mt.addImage(image, 0);
    		try
    		{
    			mt.waitForAll();
    		}
    		catch(InterruptedException ire)
    		{
    			System.out.println(ire);
    		}
    
    		jp1.setBackground(Color.BLACK);
    		jp1.setLayout(new BorderLayout());
    		jp1.add(c, BorderLayout.CENTER);
    
    		jtf1.setBackground(Color.ORANGE);
    
    		//zentriert darstellen
    		frame.setLocation((Toolkit.getDefaultToolkit().getScreenSize().width - 300) / 2,
    						  (Toolkit.getDefaultToolkit().getScreenSize().height - 300) / 2);
    
    		con.setLayout(new BorderLayout());
    		con.add(jp1, BorderLayout.CENTER);
    		con.add(bar, BorderLayout.SOUTH);
    
    		//Schließen des Fensters
    		//frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    		//Rand ausblenden
    		frame.setUndecorated(true);
    
    		this.setSize(300,300);
    		this.setVisible(true);
    
    		//Simulierte Aktivität der Progressbar
    		for(int i = 0; i<=10; i++)
    		{
    			try
    			{
    				Thread.sleep(1500);
    			}
    			catch(InterruptedException ire)	{}
    
    			final int j = i;
    			SwingUtilities.invokeLater(new Runnable()
    			{
    				public void run()
    				{
    					bar.setValue(j);
    				}
    			});
    		}		
    	}
    
    	public static void main(String[] args)
    	{
    		new FrameTest1();
    	}
    }
    

    Für ein bild gebt dann eines bei euch auf der pladde an.

    also ich möchte gerne beim laden eines Programmes, den ladestatus des Programms mit der PrograssBar anzeigen.
    Ich hab leider keinen Plan wie ich das realisieren könnte.

    Kann man überhaupot den aktuellen Ladestatus des Programms anzeigen.

    Ich hoffe mir kann wer helfen.

    bye



  • da gibts ne klasse für....die hat meines wissens sogar den namen progressbar (oder JProgressBar).
    bingo, heisst wirklich so.
    hier der link:

    http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JProgressBar.html



  • Ja ich weiß das die Klasse so heißt, hab die ja oben im Code benutzt

    da is auch ne dummyimplementierung drinne

    aber

    wie kann ich dann den initialisierungsstatus meines programmes prüfen und anzeigen, darum geht es



  • Der Initialisierungsstatus hängt davon ab, was du zum Start des Programms alles benötigst. So werden Klassen geladen, Objekte instanziiert und weitere Methoden aufgerufen. D.h. also dass die VM von vornherein gar nicht wissen kann was alles von ihr erledigt werden muss um den Status "100% geladen" anzuzeigen. Wohl aber du selbst. Du hast das Teil ja geschrieben 🙂 Setze einfach an Stellen wo es für dich relevant erscheint den Wert der ProgressBar um 10 Wertepunkte hoch ... die Progressbar soll 100 als Maximalwert besitzen. So kannst du 10 Stufen anzeigen. Das liegt ganz bei dir. Sinnvoll ist so etwas allerdings nur wenn man deine Applikation startet und sich lange Zeit mal gar nichts tut ... ist das bei dir so?



  • ja das ist ne gute idee

    man könnte dann auch wenn man plugins siehe photoshop lädt, dann weiß man ja wie groß das plugin ist und kann so auch marker setzen oder übe nen classloader

    -ich wollt halt nur mal so konzeptionell wissen, wie man so ne ladestausanzeige realisieren könnte


Anmelden zum Antworten