[JAVA] Gdzie jest błąd?


(Sieradzki) #1

public void drawCenteredString(String s, int w, int h, Graphics g); {

1 error

O co w tym chodzi??? POMOCY!!!

import java.awt.*;

import java.applet.*;



public class Main extends Applet {        

    final Font f=new Font("Verdana",Font.BOLD,18);



    public void paint(Graphics g) {

      Demension d=this.getSize();


      g.setColor(Color.white);

      g.fillRect(0, 0, d.width,d.height);

      g.setColor(Color.black);

      g.setFont(f);

      drawCenteredString("Witam." , d.width , d.height , g);

      g.drawRect(0, 0, d.width-1 , d.height-1);


     public void drawCenteredString(String s, int w, int h, Graphics g); {

       FontMetrics fm= g.getFontMetrics();

       int x=(w - fm.stringWidth(s))/2;

       int y=(fm.getAscent() + (h - (fm.getAscent()+fm.getDescent()))/2);

       g.drawString(s, x, y);

    }

}

POKAZAŁ:

Compiling 1 source file to C:\Documents and Settings\Jakub\Program1\build\classes

C:\Documents and Settings\Jakub\Program1\src\program1\Main.java:20: illegal start of expression

public void drawCenteredString(String s, int w, int h, Graphics g); {

1 error

BUILD FAILED (total time: 0 seconds)


(Airborn) #2

czyżby kompilator nie wypluł co to za błąd?


(Ryan) #3

Może warto zamknąć jedną metodę zanim się rozpocznie kolejną?

import java.awt.*; 

import java.applet.*; 



public class Main extends Applet {        

    final Font f=new Font("Verdana",Font.BOLD,18); 



    public void paint(Graphics g) { 

      Demension d=this.getSize(); 


      g.setColor(Color.white); 

      g.fillRect(0, 0, d.width,d.height); 

      g.setColor(Color.black); 

      g.setFont(f); 

      drawCenteredString("Witam." , d.width , d.height , g); 

      g.drawRect(0, 0, d.width-1 , d.height-1); 

    } ////////// <<<<<<<<<< kuku, tutaj!


     public void drawCenteredString(String s, int w, int h, Graphics g); { 

       FontMetrics fm= g.getFontMetrics(); 

       int x=(w - fm.stringWidth(s))/2; 

       int y=(fm.getAscent() + (h - (fm.getAscent()+fm.getDescent()))/2); 

       g.drawString(s, x, y); 

    } 

}

(Airborn) #4

aaa, dobra, zauważyłem dopiero, masz metodę zdefiniowaną wewnątrz metody, brak nawiasu zamykającego dla paint()


(Sieradzki) #5

Teraz się już kompiluje, ale nie wyświetla tekstu po uruchomieniu dlaczego?? Sprawdzałem na 2 komputerach i nic. Co robię żle??


(Airborn) #6

sieradzkij a to już koniec kodu?


(Sieradzki) #7

TAK, ale z tego co napisałeś to rozumiem że chyba nie??


(Airborn) #8

mi tam kompilator pokazywał jeszcze kilka błędów, literówka jedna, nie Demension a Dimension i jeden niepotrzebny średnik przy funkcji drawCenteredString(), po poprawieniu:

import java.awt.*;

import java.applet.*;



public class Main extends Applet {       

    final Font f=new Font("Verdana",Font.BOLD,18);



    public void paint(Graphics g) {

      Dimension d=this.getSize();


      g.setColor(Color.white);

      g.fillRect(0, 0, d.width,d.height);

      g.setColor(Color.black);

      g.setFont(f);

      drawCenteredString("Witam." , d.width , d.height , g);

      g.drawRect(0, 0, d.width-1 , d.height-1);

    } ////////// <<<<<<<<<< kuku, tutaj!


     public void drawCenteredString(String s, int w, int h, Graphics g) {

       FontMetrics fm= g.getFontMetrics();

       int x=(w - fm.stringWidth(s))/2;

       int y=(fm.getAscent() + (h - (fm.getAscent()+fm.getDescent()))/2);

       g.drawString(s, x, y);

    }

}

(Sieradzki) #9

Wszystko już działa, problem został rozwiązany, serdeczne podziakowania za poświącony czas dla Airborn.