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");

Podobne dokumenty