Na dysku C tworzymy katalog grupa_x gdzie x jest nr grupy stude
Transkrypt
Na dysku C tworzymy katalog grupa_x gdzie x jest nr grupy stude
Metodyka i Technika Programowania Laboratorium 4 Zamiana System.out na PrintWriter Przykład import java.io.*; public class program { public static void main(String[] args) { PrintWriter out= new PrintWriter(System.out,true); out.println("żźćłó"); } } Zmiana strony kodowej Przykład import java.io.*; public class program { public static void main(String[] args) { try{ PrintWriter out= new PrintWriter(new OutputStreamWriter(System.out,"Cp852"),true); out.println("żźćłó"); } catch (Exception e) { return; } } } Użycie klasy StringTokenizer i Scaner Przykład import java.util.*; public class program { public static void main(String[] args) { String ciag_tekstowy="To jest tekst testowy"; StringTokenizer stroke = new StringTokenizer(ciag_tekstowy); while(stroke.hasMoreElements()) System.out.println(stroke.nextToken()); Scanner scanner =new Scanner(ciag_tekstowy); while(scanner.hasNext()) System.out.println(scanner.next()); } } Używanie separatorów wartości wejściowych Przykład import java.util.*; public class Main { public static void main(String argv[]){ Scanner scanner=new Scanner("1,2,3,4,5,6,7,8"); scanner.useDelimiter("\\s*,\\s*"); while(scanner.hasNext()) System.out.println(scanner.nextInt()); } } Formatowanie wyjścia z użyciem metody format/printf Przykład import java.util.*; public class Main { public static void main(String argv[]){ int a=20; double b=34.12345678901; String ciag="dowolny tekst"; System.out.printf("a=%d \nb=%2.3f \nciąg znakowy=%s",a,b,ciag); } } Program, który pyta o podanie ciągu tekstowego, następnie dzieli ciąg na wyrazy import java.util.*; import java.io.*; public class program { public static void main(String[] args)throws Exception { InputStreamReader str = new InputStreamReader(System.in); BufferedReader buff = new BufferedReader(str); try{ System.out.print("Wprowadz ciąg:"); String linia = buff.readLine(); StringTokenizer stroke = new StringTokenizer(linia); while(stroke.hasMoreElements()) System.out.println(stroke.nextToken()); Scanner scanner =new Scanner(linia); while(scanner.hasNext()) System.out.println(scanner.next()); } catch (Exception e) {System.out.println("Wyjątek");} } } Program, który wyświetli wszystkie wartości int z wprowadzonego ciągu tekstowego import java.util.*; import java.io.*; public class Main { public static void main(String argv[])throws Exception{ try { InputStreamReader str = new InputStreamReader(System.in); BufferedReader buff = new BufferedReader(str); System.out.print("Wprowadz ciąg:"); String linia = buff.readLine(); } } Scanner scanner = new Scanner(linia); while(scanner.hasNext()) { if (scanner.hasNextInt()) System.out.println("wartość int:"+scanner.nextInt()); else scanner.next(); } } catch(Exception e) {e.printStackTrace();} Aplety Aplety są programami javy stosowane głównie w internecie i uruchamiane głównie w przeglądarkach www. Przykładowy program kompilujemy za pomoca polecenia javac simple.java Uruchamiamy poleceniem appletviewer simple.java Przykład /* <applet code="simple" width=300 height=60> </applet> */ import java.awt.*; import java.applet.*; public class simple extends Applet { public void paint (Graphics g) { g.drawString("Prosty aplet",30,30); } } Można też użyć środowiska Netbeans dla utworzenia podanego przykładu. W tym celu tworzymy nowy projekt i nazywamy go np. ProstyAplet. Odznaczamy opcję Set as Main Project oraz Create Main Class. Do projektu dodajemy Applet: Uzupełniamy treść apletu zgodnie z poprzednim przykładem, kompilujemy i uruchamiamy nasz aplet. Szkielet apletu Przykład /* <applet code="Szkielet" width=500 height=50> </applet> */ import java.awt.*; import java.applet.*; public class Szkielet extends Applet { public void init(){ } // metoda wywoływana jako pierwsza public void start(){ } // metoda wywoływana jako druga i po każdym wznowieniu działania programu public void stop(){ } // metoda wywoływana przed zakończeniem działania programu public void destroy(){ } // metoda wywoływana jest jako ostatnia public void paint(Graphics g) {} // ponowne wyświetlenie zawartości okna } Przykład Uwaga należy kompilować z przełącznikiem –Xlint (javac Klawisze.java –Xlint) /* <applet code="Klawisze" width=500 height=50> </applet> */ import java.awt.*; import java.applet.*; public class Klawisze extends Applet { String msg=""; public boolean keyDown(Event evtObj, int key) { msg+=(char) key; repaint(); showStatus("Klawisz nacisniety"); return true; } public boolean keyUp(Event evtObj, int key) { showStatus("Klawisz puszczony"); return true; } public void paint(Graphics g) { g.drawString(msg,10,10); } } Wątki Klasa może być zdefiniowana jako wątek poprzez rozszerzenie klasy java.lang.Thread. Ten sposób daje bezpośredni dostęp do wszystkich metod kontrolujących wątek zdefiniowanych w klasie Thread. W przykładowej aplikacji zdefiniowano dwie klasy: watek i program. Klasa watek definiuje pojedynczy wątek, który będzie wykonywany w aplikacji program, klasa ta dziedziczy z klasy Thread będącej częścią pakietu java.lang. Przykład public class watek extends Thread{ String wysun = ""; public watek(String str, int numer) { super(str); // Ustawienie wcięcia z jakim będzie wyświetlana nazwa wątku for (int i = 1; i < numer; i++) wysun = wysun + "\t"; } public void run() { for (int i = 0; i < 4; i++) { System.out.println(wysun + i + " " + getName()); try { sleep( (int)(Math.random() * 1000) ); } catch ( InterruptedException e ) { e.printStackTrace(); } } System.out.println(wysun + getName()+ " koniec" ); } } public class program { public static void main(String[] args) { new watek("Pierwszy",1).start(); new watek("Drugi",2).start(); new watek("Trzeci",3).start(); new watek("Czwarty",4).start(); } } Implementacja interfejsu Runnable pozwala na utworzenie klasy, która ma własności wątku i jednocześnie rozszerza właściwości jakiejś innej klasy. Przykład public class watek implements Runnable { String wysun = ""; Thread biezacy; public watek( int numer ) { for (int i = 1; i < numer; i++) wysun = wysun + "\t"; } public void run() { biezacy = Thread.currentThread(); for (int i = 0; i < 4; i++) { System.out.println(wysun + i + " " + biezacy.getName()); try { biezacy.sleep((int)(Math.random() * 100)); } catch (InterruptedException e) {} } System.out.println(wysun + biezacy.getName()+ " koniec" ); } } public class program { static Thread watki[]; public static void main (String[] args) throws Exception { watki = new Thread[4]; watki[0] watki[1] watki[2] watki[3] = = = = new new new new Thread( Thread( Thread( Thread( // uruchomienie wątków for (int i=0; i<4; i++) watki[i].start(); } } new new new new watek(1),"Pierwszy"); watek(2),"Drugi"); watek(3),"Trzeci"); watek(4),"Czwarty");