Inhalt

GO TO THE ENGLISH SITE

Softhema Group [www.softhema.de]

Beispiele
Softhema Java Toolkit Collection Version 1.2

Beispielsammlung
In der JTC-API befinden sich im Unterverzeichnis samples einige Java-Quellcodebeispiele. Zum Aufruf der Beispiele sollten sie über eine JRE in der Version 1.2 oder höher verfügen. Installieren Sie die JTC-API in Ihrer JRE (siehe Installation).
Zum Ausführen der Beispiele rufen Sie den Java-Interpreter java.exe mit dem entsprechenden Dateinamen des Beispiels ohne Dateinamenserweiterung auf.

Hier sind die erforderlichen Schritte:

  1. Unter Windows die MS-DOS-Eingabeaufforderung öffnen
    Unter Unix eine Kommandoshell öffnen
  2. Wählen Sie das Verzeichnis aus, in dem sich die class-Datei des Beispiels befindet.
    Windows: cd .\samples\scanf
    Unix: cd ./samples/scanf
  3. Starten Sie das Java-Programm durch Aufruf des Java-Interpreters.
    Windows: java.exe Samples1
    Unix: java Samples1
In den nachfolgenden Abschnitten werden einige Quellcodeauszüge für die unterschiedlichen Teil-APIs aufgeführt.
Die Quellcodeauszüge dienen zum Überblick der angebotenen Funktionen. Es werden an dieser Stelle aber nicht für alle Einsatzgebiete der JTC-API Beispiele vorgestellt. Eine vollständige Liste der angebotenen Funktionen finden Sie in der Java-API-Dokumentation. Dort wird jede Funktion detailliert erklärt.

Teil-API ToolkitArray
Wie der Name schon sagt, geht es bei dieser Teil-API um die Manipulation von Java-Arrays. Sie dient zur Ergänzung noch fehlender Funktionen in der Klasse java.util.Arrays.

Das Mischen von Karten, wie es in einem Computerspiel vorkommt, ermöglicht die Methode elementsMix. In diesem Beispiel werden einige Farben zufällig vermischt.

            import softhema.system.toolkits.ToolkitArray;
            ...
            String[] as = new String[5];
            as[0] = "red";
            as[1] = "yellow";
            as[2] = "blue";
            as[3] = "orange";
            as[4] = "white"; 
			
            //mix it
            ToolkitArray.elementsMix( as );
			
            for( int i = 0 ; i < 5 ; i++ )
              System.out.println( as[ i ] );
            
Teil-API ToolkitAWT
Das AWT ist noch nicht tot. Für die Programmierung von Applets empfiehlt es sich nach wie vor das AWT anstatt Swing zu verwenden. Dies ist damit begründet, dass es noch viele Webbrowser mit einer JRE in der Version 1.1 im Internet gibt. In dieser Version war Swing noch nicht fester Bestandteil der Java-Core-Klassenbibliothek. Die Klasse ToolkitAWT enthält nützliche Ergänzungen für das AWT.
Das hier vorgestellte Beispiel ermöglicht es den Text eines ausgewählten Elements eines Choice-Steuerelements zu ändern.

  void choiceSelect_itemStateChanged(ItemEvent e)
  {
      txtSelect.setText( choiceSelect.getSelectedItem() );
  }

  void txtSelect_textValueChanged(TextEvent e)
  {
      ToolkitAWT.ChoiceItemReplace( choiceSelect,
                                    choiceSelect.getSelectedIndex(),
                                    txtSelect.getText(),
                                    true
                                   );
  }


Appletbeispiel für die Methode ChoiceItemReplace in der Klasse ToolkitAWT
Appletbeispiel für die Methoden ListItemsSelectedMoveUp und ListItemsSelectedMoveDown in der Klasse ToolkitAWT

Teil-API ToolkitCollection
Die Klasse ToolkitCollection enthält Erweiterungen für das Java Collection Framework. Dabei wird auch der Vorgänger "java.util.Vector" des Java Collection Framework unterstützt.
   import softhema.system.toolkits.ToolkitCollection;
   ...
   try
   {
     Vector vec = new Vector();
     vec.addElement( "red" );
     vec.addElement( "yellow" );
     vec.addElement( "blue" );
     vec.addElement( "orange" );
     vec.addElement( "white" );

     //reverse order
     ToolkitCollection.listReverseOrder( vec );
    
     //print new order
     ToolkitIO.printf("\nnew order:\n%s\n%s\n%s\n%s\n%s\n", vec);
   }
   catch( IOException e )
   {
     e.printStackTrace();
   }
Teil-API ToolkitFile
Die Methode list der Klasse java.io.File listet lediglich die Dateien und Unterordner der nächsten Ebene. Um alle Dateien eines Verzeichnisses zu ermitteln, ist ein rekursiver Algorithmus erforderlich. Die Methode listFilesRecursive aus der Teil-API ToolkitFile gibt Ihnen ein Array von File-Objekten zurück, welches alle untergeordneten Dateien enthält.

     
     Vector v = new Vector();

     ToolkitIO.printf("%s", "Input a directory:");
     ToolkitIO.scanf("%ls", v);
     
     String sDirectory = (String) v.elementAt(0);
     File dir = new File( sDirectory );

     File[] aFilesAndSubDirs = ToolkitFile.listFilesRecursive( dir, true );
     File[] aFilesOnly = ToolkitFile.listFilesRecursive( dir, false );

     int countFiles = aFilesOnly.length;
     int countDirs = aFilesAndSubDirs.length - countFiles;
        
     ToolkitIO.printf("In the directory \"%s\" are %i files and %i subdirectories.\n",
	                   sDirectory, new Integer(countFiles), new Integer(countDirs) );     
    
Teil-API ToolkitIO
In diesem Toolkit befinden sich Funktionen für Ein-/Ausgabeoperationen. Eingaben werden von System.in geholt. Ausgaben werden nach System.out geschrieben.

Umrechnung von Fahrenheit nach Celsius:

            import softhema.system.toolkits.ToolkitIO;
            ...
					
            try
            {
               Vector v = new Vector();
     
               ToolkitIO.printf("\n%s", "Input the temperature in Fahrenheit:");
               ToolkitIO.scanf("%f", v );
     
               float fahrenheit = ( (Number) v.elementAt(0) ).floatValue();
               float celsius = (5.0f / 9.0f) * (fahrenheit - 32);

               v.addElement( new Float( celsius ) );

               ToolkitIO.printf("%.2f Fahrenheit is %.2f Celsius", v);
            }
            catch( IOException e )
            {
               e.printStackTrace();
            }
				  
		

Appletbeispiel für die Methode printf in der Klasse ToolkitIO
Appletbeispiel für die Methode scanf in der Klasse ToolkitIO

Teil-API ToolkitString
ToolkitString stellt Ihnen zusätzliche Funktionen zur Analyse und zur Manipulation von Strings bereit. Die Methode sprintf schreibt ihre Ausgabe nicht auf den Bildschirm, sondern in einen String. Ein Stringvergleich mit Wildcards lässt sich über die Methode isLike durchführen.

      ToolkitIO.printf("\nInput a password:");
      String pwd = ToolkitIO.readStringLine();

      if( ToolkitString.isLike( pwd, "*s*s*" ) )
      {
        //The password must contains two s-characters.
        ToolkitIO.printf("\nThe password %s is correct.", pwd);
      }
      else
      {
        ToolkitIO.printf("\nThe password %s is not correct.", pwd);
      }	   
	   

Appletbeispiel für die Methode isLike in der Klasse ToolkitString
Appletbeispiel für die Methode strReplaceLike in der Klasse ToolkitString
Appletbeispiel für die Methode subStringLike in der Klasse ToolkitString

Teil-API ToolkitSwing
Mit Swing lassen sich leistungsfähige Benutzeroberflächen erstellen. Trotzdem sind manche Funktionalitäten in Swing noch mit einem enormen Aufwand verbunden. Die Toolkit-API enthält Funktionen zur Erweiterung der in Swing enthaltenen Steuerelemente. Zusätzlich sind einige Hilfsfunktionen enthalten.

  void jBtnMoveUp_actionPerformed(ActionEvent e)
  {
     ToolkitSwing.ListItemsSelectedMoveUp( jList );
  }

  void jBtnMoveDown_actionPerformed(ActionEvent e)
  {
     ToolkitSwing.ListItemsSelectedMoveDown( jList );
  }
Inhalt