Laboration 1

Introduktion till Java, kompilering och exekvering

Syfte: Uppgiftens syfte är att bekanta sig med systemet och att kunna skapa, kompilera och köra några enkla Java-program. Det är inte avsikten att du ska förstå alla detaljer i de program som du skapar nedan, utan syftet är att du ska få prova på vad man kan göra i Java. Under kursens gång kommer vi att återkomma till det du träffar på i denna lab.

Förberedelser: Om du har glömt hur UNIX och Emacs fungerar så kan det vara en bra idé att repetera dessa moment från datorintroduktionen. Se också till att du känner till det lösenord du senast använde i hus 1, eftersom det är datorsalarna där vi använder. Har du glömt ditt lösenord, kontakta någon av de datoransvariga för att få ett nytt lösenord. I hus 1 sitter de på plan 4, rum 1439 och 1443.

Du bör också ha läst igenom kap 1.1 - 1.4 i Skansholm för att förstå de begrepp som används. I laborationen kommer du att testa de exempelprogram som finns i bokens kap 1.5 - 1.8, läs gärna dessa avsnitt under laborationens gång, så kan det vara lättare att förstå vad du gör.

Övningarna under denna lab är mycket enkla. Anledningen till detta är att du ska lära dig de praktiska handgreppen, så att du framvöer inte behöver fundera på hur systemet fungerar utan i stälelt i framtiden kan koncentrera dig på programmeringsproblemen.

Allmänt: Uppgifterna ska lösas och redovisas individuellt. Muntligt samarbete är dock tillåtet och rekommenderas.

Redovisning: När du har avslutat sista uppgiften, be Elena, din labassistent, komma för att godkänna ditt arbete. Var beredd att visa det eller de program hon begär. Om hon är nöjd med dina lösningar, behöver du inte lämna in något.

Uppgifter:

mkdir java

cd java

Alla Javaprogram du skriver under kursen lägger du enklast i denna katalog.

public class Example1 {
public static void main(String[] arg) {
System.out.println("Välkommen till Java!");
}
}

javac Example1.java

java Example1

(Observera att du inte ska skriva .class efter filnamnet ovan). Vad hände?

import java.awt.*;
public class Example2 extends Frame {
     Label lab;
     Example2() {
        lab=new Label("Välkommen till Java!");
        add(lab, "North");
        pack();
        setVisible(true);
     }
     public static void main(String[] arg) {
     Example2 e = new Example2();
     }
}

 

Anledningen till detta är att menyn inte är aktiverad som standard, programmet avslutas aldrig. För att avsluta programmet trycker du CTRL-C i kommandofönstret (se till att detta är det aktiva fönstret).

import java.awt.*;
public class Example3 extends Frame {
     Font f;
     Example3() {
        f = new Font("SansSerif", Font.BOLD, 24);
        setBackground(Color.yellow);
        setSize(400, 150);
     }
     public void paint(Graphics g) {
        g.setFont(f);
        g.setColor(Color.blue);
        g.drawString("Välkommen till Java!!", 45, 100);
     }
     public static void main (String[] arg) {
        Example3 e = new Example3();
        e.setVisible(true);
     }
}

 

import java.awt.*;
import java.applet.*;
public class Example4 extends Applet {
     Font f;
     public void init() {
        f = new Font("SansSerif", Font.BOLD, 24);
        setBackground(Color.yellow);
     }
       
     public void paint(Graphics g) {
        g.setFont(f);
        g.setColor(Color.blue);
        g.drawString("Välkommen till Java!", 45, 100);
     }
}

 

Kompilera programmet som vanligt. Du kan dock inte köra det på samma sätt som du kört tidigare program. För att kunna köra en applet behövs förutom själva programmet också en html-fil. Skapa filen Example4.html och skriv in följande:

<html>

    <head>

      <title>Min första applet</title>

    </head>

    <body>

<applet code=Example4.class

width=300 height=260>

</applet>

    </body>

</html>

  

appletviewer Example4.html

För att avsluta programmet väljer du Quit i menyn Applet i det fönster som skapats.

pwd

/home/andersb/java

Starta Netscape (om du inte redan har en Netscape uppe). Öppna nu filen genom att på Netscapes adressrad ta bort det som redan står där och i stället skriva in var filen finns, dvs dess path, t ex skulle jag skriva in:

file:/home/tina/java/Example4.html

Om nu allting fungerar så kommer din applet att köras i Netscape.

(Att det står file: och inte http:// beror på att den fil du använder ligger lokalt under din java-katalog, och är därmed inte synlig utåt, den är alltså bara åtkomlig när du kör på datorer på området. Om du vill att den ska vara åtkomlig från Internet måste du lägga den i den katalog där du har din hemsida, denna katalog ska heta public_html och ligga på toppnivå i din katalogstruktur, den och filerna i den måste dessutom vara läsbara för alla.)

Surfa till adressen ovan och leta upp dokumentationen för metoderna drawOval och drawArc i klassen Graphics. Detta hittar du i paketet java.awt. Läs om hur man använder metoderna. Man behöver ganska ofta slå upp saker via Internet, eftersom biblioteken i java byggs på hela tiden, och inga böcker dokumenterar detta.

import java.awt.*;

import java.applet.*;
public class Katt extends Applet {
     Font f = new Font("Serif", Font.ITALIC, 18);
     public void init() {
        setBackground(Color.white);
     }
     public void paint(Graphics g) {
        g.setColor(Color.black);
        g.drawRect(50,50,60,60);            //huvud
        g.drawRect(80,225,140,5);           //svans
        g.setColor(Color.white);
        g.fillOval(20,110,120,120);         //vitt inne i kroppen
        g.setColor(Color.black);
        g.drawOval(20,110,120,120);         //rita kropp, kontur
        g.fillOval(75,75,10,10);            //nos
        g.setColor(Color.blue);
        g.fillOval(60,60,10,10);            //ögon
        g.fillOval(90,60,10,10);
        g.setColor(Color.black);
        g.drawLine(50,50,60,30);            //öron
        g.drawLine(60,30,70,50);
        g.drawLine(110,50,100,30);
        g.drawLine(100,30,90,50);
        g.setColor(Color.red);
        g.drawArc(60,80,40,20,180,180);     //mun
        g.setColor(Color.black);
        g.setFont(f);
        g.drawString("Mjava", 200, 50);
     }
}

 

Du måste också skapa filen Katt.html (eller kopiera den, se ovan):

<html>
    <head>
      <title>Katt</title>
    </head>
    <body>
      <applet code=Katt.class width=300
        height=260></applet>
    </body>
</html>

 

Kompilera filen Katt.java, och kör sedan programmet antingen med appletviewer eller i Netscape.

 

När du fått programmet att fungera ska du ändra i det så att du modifierar kattens utseende en smula. I programmet ovan finns ett avsnitt (en metod) som heter paint. Den gör själva ritandet av katten. Katten ritas i en ruta som är 300 punkter bred och 260 punkter hög (se html-koden ovan). Punkten i övre vänstra hörnet har koordinaterna (1,1) och koordinaterna räknas sedan upp åt höger och nedåt, vilket betyder att det nedre högra hörnet har koordinaterna (300, 260). Med hjälp av detta kan du lista ut hur ritandet fungerar ovan. Din uppgift är nu att ändra programmet så att:

 

----------------

Ansvarig för web-sidan: Anders Berglund.