Inloggen

Gebruikersnaam:
Wachtwoord:
 
 
Registreren

Heb je nog geen TaZrum account? Registreer je dan nu en log in om de hele site te kunnen gebruiken!



Het Grote JAVA topic



1
Twilight

Avatar niet gevonden
Intrepid Traveler

Status: Offline
Posts: 31523
Geslacht: Man

19-09-2014 00:03:21
Ik zit me hier nu best in te verdiepen, en ik geloof dat er nog wel wat mensen hier zijn die dit ook gebruiken. Dus ik dacht: waarom niet!
Mirielle

Avatar niet gevonden
Kitty nooo

Status: Offline
Posts: 21843
Geslacht: Vrouw

19-09-2014 08:26:36
Silvan is net een Android-applicatie aan het programmeren in Java.
Twilight

Avatar niet gevonden
Intrepid Traveler

Status: Offline
Posts: 31523
Geslacht: Man

19-09-2014 09:24:05
Nice!

Ik loop sinds gisteren tegen een probleem aan dat me beloont met zeker 8 errors, wat ik er ook aan doe. Het is de bedoeling dat er een fullscreen scherm verschijnt met tekst. Ik begrijp niet zo goed wat er mis is.
Het enige wat me wordt verteld bij elke error is 'cannot find symbol'. Klopt het dat de desbetreffende errors dan gaan over keywords die niet gevonden kunnen worden oid? Ik heb ook wat gegoogled maar geen enkele oplossing lijkt te werken.

Quote:

import java.awt.Color;
import java.awt.DisplayMode;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.Timer;

public class starter {

public static void main(String[] args) {

DisplayMode dm = new DisplayMode(800,600,16, DisplayMode.REFRESH_RATE_UNKNOWN);
starter b = new starter();
b.getContentPane().setBackground(Color.YELLOW);
b.run(dm);
}

public void run(DisplayMode dm) {
getContentPane().setBackground(Color.BLUE);
getContentPane().setForeground(Color.WHITE);
getContentPane().setFont(new Font("Arial", Font.PLAIN, 25));

final Screen s = new Screen();
s.setFullScreen(dm, this);

Timer timer = new Timer(5000, new ActionListener() {

public void actionPerformed(ActionEvent e) {
s.restoreScreen();
}
});
timer.setRepeats(false);
timer.start();
}

public void paint(Graphics g) {
super.paint(g);
g.drawString("This is gonna be awesome!", 200, 200);
}

public class Screen {

private GraphicsDevice videoCard;

public Screen() {

GraphicsEnvironment env = GraphicsEnvironment.getLocalGraphicsEnvironment();
videoCard = env.getDefaultScreenDevice();
}

public void setFullScreen(DisplayMode dm, JFrame window) {
window.setUndecorated(true);
window.setResizable(false);
videoCard.setFullScreenWindow(window);

if(dm != null && vc.isDisplayChangeSupported()) {
try {
videoCard.setDisplayMode(dm);
} catch (Exception ex) { }
}
}

public Window getFullscreenWindow() {
return videoCard.getFullscreenWindow();
}

public void restoreScreen() {
Window w = videoCard.getFullScreenWindow();
if(w != null) {
w.dispose();
}
videoCard.setFullScreenWindow(null);
}

}
}

TaZ

Avatar niet gevonden
Mojitodrinker

Status: Offline
Posts: 17850
Geslacht: Man

19-09-2014 09:49:29
Hmm, het is wel een tijdje geleden voor mij... Maar ik heb vroegah ook wel fullscreen applicaties gemaakt en daar met Graphics in getekend. Dat hele gebeuren met Screen en GraphicsDevice hoefde ik niet te doen though.

[add]
Wat is wel zie op het eerste gezicht is dat je super.paint(g); aanroept vanuit paint(), maar de starter class extend niks, dus die regel is fout.
Twilight

Avatar niet gevonden
Intrepid Traveler

Status: Offline
Posts: 31523
Geslacht: Man

19-09-2014 10:08:08
Omg! Het moest ook wel zoiets zijn.

"extends JFrame" miste inderdaad! Toen bleven er nog 2 errors over, maar die kon ik vrij vlot opsporen.
Super thanks!!
Snorro

Avatar niet gevonden
dfSAambuce!!

Status: Offline
Posts: 15671
Geslacht: Man

23-09-2014 14:49:47
Java (Indonesisch: Jawa) is een eiland in de Republiek Indonesië. Het eiland is 132.000 km² groot (ruim drie keer zo groot als Nederland) en heeft meer dan 114 miljoen inwoners. Daarmee is het het dichtstbevolkte eiland van Indonesië met gemiddeld 864 mensen per vierkante kilometer.

I pulled over to the side and felt no time
Off the highway with the landscape aglow
Still not sure what we were trying to find
I only know we went home
Twilight

Avatar niet gevonden
Intrepid Traveler

Status: Offline
Posts: 31523
Geslacht: Man

24-09-2014 11:02:45
Het is fijn om dat nu ook even te weten, als extraatje!
Twilight

Avatar niet gevonden
Intrepid Traveler

Status: Offline
Posts: 31523
Geslacht: Man

02-10-2014 18:55:01
Ik heb een vraag.

Ik ben een beetje aan het uitzoeken hoe OOB precies gaat in Java, en ik denk dat ik het snap, maar er gaat nog iets mis. Ik probeer een platform-achtig spelletje te maken. Het is me gelukt om een platform te maken en een bal, die bal kan nu met de pijltjestoetsen op het platform bewegen en hij valt er ook af als ik over de rand beweeg.
Ik wil nu graag een tweede platform maken en heb de code daar een beetje voor aangepast, omdat hij eerst bedoelt was voor 1 platform en niet eventueel meer. Onderstaande code geeft geen foutmeldingen, maar hij creëert maar 1 platform. Die tweede doet hij niet. Ik vermoed dat ik de code voor paint() moet herschrijven zodat hij het automatisch voor elk nieuwe platform opnieuw doet...

Ik heb nu dit in de main:

Quote:
Platform platform = new Platform(this, 100, 340, 180, 20);
Platform platform2 = new Platform(this, 80, 220, 150, 20);

Verder op doe ik ook platform.paint(); en platform2.paint();

En dit in platform.java:

Quote:
public class Platform {

private static int Y = 0;
private static int WIDTH = 10;
private static int HEIGHT = 10;
private static int X = 0;

private Game game;

public Platform(Game game, int x, int y, int width, int height) {
this.game = game;

Y = y;
WIDTH = width;
HEIGHT = height;
X = x;
}


public void paint(Graphics2D g) {
g.fillRect(X, Y, WIDTH, HEIGHT);
}


public Rectangle getBounds() {
return new Rectangle(X, Y, WIDTH, HEIGHT);
}


public int getTopY() {
return Y;
}

}



Deze post is 1 keer aangepast, waarvan de laatste aanpassing is gedaan door Twilight op 02-10-2014 19:07:48.
TaZ

Avatar niet gevonden
Mojitodrinker

Status: Offline
Posts: 17850
Geslacht: Man

03-10-2014 07:42:36
Ziet er prima uit. Geef je "g" wel mee in de paint calls van de platformen?
Twilight

Avatar niet gevonden
Intrepid Traveler

Status: Offline
Posts: 31523
Geslacht: Man

03-10-2014 13:22:04
Thanks voor het kijken.

Hmm, volgens mij wel. Voor de zekerheid voeg ik even alle code bij van de main:

public class Game extends JPanel {

Ball ball = new Ball(this);
Platform platform = new Platform(this, 100, 280, 180, 20);
Platform platform2 = new Platform(this, 80, 220, 150, 20);

double speed = 2;
double JumpSpeed = 0;
double JumpSpeedMod = 5;

public Game() {
addKeyListener(new KeyListener() {
@Override
public void keyTyped(KeyEvent e) {
}

@Override
public void keyReleased(KeyEvent e) {
ball.keyReleased(e);
}

@Override
public void keyPressed(KeyEvent e) {
ball.keyPressed(e);
}
});
setFocusable(true);
}

private void move() {
ball.move();

}


@Override
public void paint(Graphics g) {
super.paint(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
ball.paint(g2d);
platform.paint(g2d);
platform2.paint(g2d);

g2d.setColor(Color.GRAY);
g2d.setFont(new Font("Verdana", Font.BOLD, 30));
g2d.drawString(String.valueOf(ball.returnJumpSpeed()), 10, 30);
}

public void gameOver() {
JOptionPane.showMessageDialog(this, "Game Over man!", "Game Over!"
, JOptionPane.YES_NO_OPTION);
System.exit(ABORT);
}


public static void main(String[] args) throws InterruptedException {
JFrame frame = new JFrame("Platform");
Game game = new Game();
frame.add(game);
frame.setSize(300, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

while (true) {
game.move();
game.repaint();
Thread.sleep(10);
}
}

}


Was er trouwens geen tag voor code?

Deze post is 1 keer aangepast, waarvan de laatste aanpassing is gedaan door Twilight op 03-10-2014 13:51:54.
TaZ

Avatar niet gevonden
Mojitodrinker

Status: Offline
Posts: 17850
Geslacht: Man

03-10-2014 13:36:39
Probeer eens om "g" mee te geven in plaats van "g2d". (En dan de paint methode van Platform aanpassen om een Graphics object te accepteren.)

Ik lees hier dat het wel veilig is om een Graphics object naar Graphics2D te casten, maar drawRect is een Graphics methode. Verder weet ik niet of calls naar "g2d" ook de staat van "g" updaten, oftewel ik weet niet of de drawRect commando's wel doorkomen.

[add]
Er is een [code] tag.
1