Kezdőoldal » Számítástechnika » Programozás » Java javax. Swing. Vonal...

Java javax. Swing. Vonal Rajzolás Változóval Hogy csináljam?

Figyelt kérdés

Az volna hogy úgy akarok vonalakat rajzolni hogy a vonal pontjait egy listából szedje ki de sehogy se akar lefordulni a kód.


g.drawLine(10,10, 50, 50); Itt a 10,10,50,50 helyett.


Program

import java.awt.*;

import javax.swing.*;


class Program extends JFrame {

Canvas vaszon = new Vaszon();

Program() {

add(vaszon);

setSize(300, 200);

setVisible(true);

}


class Vaszon extends Canvas {

public void paint(Graphics g) {

g.drawLine(10,10, 50, 50);

}

}


public static void main(String args[]) {

new Program();

}


}



#Java #vonal #swing #grapics2D #canvans
2015. febr. 26. 19:15
 1/5 anonim ***** válasza:

> sehogy se akar lefordulni a kód


Mi a hibaüzenet?

2015. febr. 27. 19:17
Hasznos számodra ez a válasz?
 2/5 SimkoL ***** válasza:
Nem vágom a Java-t de: Canvas vaszon = new Vaszon();
2015. febr. 27. 19:26
Hasznos számodra ez a válasz?
 3/5 anonim ***** válasza:

#2:


Mivel ott van alatta a definíció, az pont stimmel.


class Vaszon extends Canvas {

2015. febr. 27. 21:30
Hasznos számodra ez a válasz?
 4/5 A kérdező kommentje:

Ez nem ír hibát. de amint megprobálok bemenő paramétert adni valahova hiba...

pl ide: class Vaszon extends Canvas(int x, int y)

vagy

public void paint(Graphics g, int x, int y)


de megoldottam igy:



import java.awt.*;

import javax.swing.*;


class Program extends JFrame {

Canvas vaszon = new Vaszon();

Program() {

add(vaszon);

setSize(300, 200);

setVisible(true);

}


class Vaszon extends Canvas {


public void paint(Graphics g) {

szamok ertekad = new szamok();

int x = ertekad.x();

int y = ertekad.y();

g.drawLine(x,y, 40, 40);


}

}

class szamok {


int x() {

int x = 5;

return x; // Ide már eget settel akár filból is át irthatom

}


int y() {

int y = 15; // És itt is

return y;

}

}



public static void main(String args[]) {

new Program();

}


}

2015. febr. 28. 11:57
 5/5 anonim ***** válasza:

<idézet>

pl ide: class Vaszon extends Canvas(int x, int y)

vagy

public void paint(Graphics g, int x, int y)

</idézet>


Akkor ezen a ponton javaslok neked valamit, a legjobb szándékkal. Felejtsd el a GUI-t, felejts el mindent, és kezdd el a Java-t tanulni elölről, mert alapvető dolgokkal (szintaxis és fogalmak) nem vagy tisztában.


Elmagyarázom mi a rossz az idézetben:


Az első sor egy osztálydefiníció. Definiálod a Vaszon osztályodat, ami a Canvas leszármazottja. Itt nem adhatsz paramétert, mert értelmetlen. A Canvas egy osztály, nem metódus. (Osztálydefiníciókban típusparamétert lehet adni maximum, de csak generikus osztályoknál, itt erről nincsen szó.)


A második sorodnál a paint metódus kiegészítve lefordul ugyan, de az már nem a Canvas paint metódusának felüldefiniálása lesz, pedig azt kellene tenni, hogy működjön a GUI.


Ami egy tisztább megoldás lehetne:


class Vaszon extends Canvas {


private int x,y;


public Vaszon(int x,y) { this.x=x; this.y=y; }


public void paint(Graphics g) { g.drawLine(x,y,40,40); }


} // class


Főprogramból: new Vaszon(5, 15);

2015. febr. 28. 12:10
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!