kostenloser Webspace werbefrei: lima-city


[Java] Variablen aus einer Schleife ausgeben

lima-cityForumProgrammiersprachenJava

  1. Autor dieses Themas

    benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.

    Ich w?rde gerne (als kleine Spielerei) alls Quelllaufwerke(Hey, ein Wrt mit 3 "l" O.O) des Recchners ausgeben lassen.
    Daf?r habe ich mir bisher folgenden Code zusammengeschustert:

    //imports
    //import java.awt.*;
    import javax.swing.*;
    import java.io.*;
    //-----------------------
    public class getRoots 
    {
    
        public static void main(String[] args) 
        {
            JFrame frame  = new JFrame( "Alle roots anzeigen ;)" );
            for( File file : File.listRoots() )
            {
                try
                {
                String ready       = file.exists() ? "" : "nicht";
                StringBuffer back  = new StringBuffer (file.getPath());
                back.append( " ist " ).append( ready ).append( " bereit." );
                JLabel label       = new JLabel( back.toString() );
                frame.getContentPane().add( label );
                }
                catch( ArrayIndexOutOfBoundsException e)
                {
                    JOptionPane.showMessageDialog( frame, "Es wurde ein Fehler festgestellt.\n Das Programm wird beendet -.-"); //GIbt im Fehlerfall eine Meldung aus.
                  
                }
            
                
        	}
            
            
            
    
            frame.setSize( 250, 150 );
            frame.setVisible( true );
        }
    }

    allerdings wird nachher nur "D:\ ist bereit" ausgegeben, da ja nur das zuletzt aufgerufene Laufwerk in das Label geschrieben wird.
    Ich will aber alle untereinander ausgeben.
    Das m?sste ich dann ja auserhalb der for-Schleife machen, ich wei? allerdings nicht, wie :-/



    MfG

    Beitrag ge?ndert am 14.08.2006 11:26 von benutzernaemelchen

    EDIT: hat sich gekl?rt, bitte closen ;)

    Beitrag ge?ndert am 14.08.2006 13:29 von benutzernaemelchen
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. d****y

    Also das nur das letzte gefundene Laufwerk in das Label geschrieben wird stimmt nicht so ganz. Das zuletzt hinzugef?gte Label ?berdeckt nur alle vorherigen.

    Guck dir mal folgendes an:

    public static void main(String[] args)
        {
            JFrame frame  = new JFrame( "Alle roots anzeigen ;)" );
            //JLabel label  = new JLabel( back.toString() );
            //JLabel label[]       = new JLabel[26];
            int i=0;
    
            frame.setLayout(null); //Kein Layout verwenden
    
            for( File file : File.listRoots() )
            {
                try
                {
                String ready       = file.exists() ? "" : "nicht";
                StringBuffer back  = new StringBuffer (file.getPath());
                back.append( " ist " ).append( ready ).append( " bereit." );
                JLabel label = new JLabel(back.toString());
                label.setBounds(0,i*15,200,10); //Setzt jedes Label ein St?ck weiter unter das vorherige
                frame.getContentPane().add(label);
                //label[ i ] = new JLabel(back.toString());
                //label[ i ].setBounds(0,i*15,200,10);
                //frame.getContentPane().add(label[ i ]);
                frame.getContentPane().add(label);
                i++;
                }
                catch( ArrayIndexOutOfBoundsException e)
                {
                    JOptionPane.showMessageDialog( frame, "Es wurde ein Fehler festgestellt.\n Das Programm wird beendet -.-"); //GIbt im Fehlerfall eine Meldung aus.
                }
            }
            frame.setSize( 250, 150 );
            frame.setVisible( true );
        }



    Das wichtigste ist an sich, dass du die Position der Labels festsetzt. Ansonsten werden alle (falls du kein Layout verwendest) ?bereinander geklatscht.
    Der auskommentierte Code w?re f?r eine L?sung mit einem Array. So h?ttest du sp?ter noch zugang zu allen Labels.

    Oh sorry, hatte nicht gesehen, dass das Problem schon gel?st wurde.

    Beitrag ge?ndert am 6.09.2006 17:52 von donkey
  4. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!