Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Drawline soms wel en soms niet...  (gelezen 1782 keer)

Shonof

  • Gast
Drawline soms wel en soms niet...
« Gepost op: 2009/04/24, 09:00:19 »
Ik ben een beetje lijnen aan het tekenen in Java. Maar soms komt het lijntje er wel en soms niet ???. Ik heb kom er gewoon niet meer uit. Ik hoop dat er iemand is die mij kan vertellen wat ik verkeerd doet.

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

public class Lijnen extends JFrame {

/**
*
*/
private static final long serialVersionUID = 1L;

private JLabel jlblBanner = new JLabel("Banner");

public static void main(String[] args) {
new Lijnen();
}

public Lijnen() {
add(jlblBanner);
setTitle("TestGetGraphics");
setLocationRelativeTo(null); // Center the frame
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800, 600);
setVisible(true);

// Center the JFrame
// Get the size of the screen
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();

// Determine the new location of the window
int wWidth = getSize().width;
int wHeight = getSize().height;
int x = (dim.width - wWidth) / 2;
int y = (dim.height - wHeight) / 2;

// Move the window
setLocation(x, y);

JOptionPane.showMessageDialog(null,
"Delay on purpose\nClick OK to dismiss the dialog");
Graphics graphics = jlblBanner.getGraphics();

// werkt niet
graphics.drawLine(240, 140, 300, 200);
graphics.drawLine(235, 135, 295, 195);
graphics.drawLine(230, 130, 290, 190);
graphics.drawLine(225, 125, 285, 185);
graphics.drawLine(220, 120, 280, 180);

// werkt wel
graphics.drawLine(500, 500, 550, 550);
}

}

Shonof

  • Gast
Re: Drawline soms wel en soms niet...
« Reactie #1 Gepost op: 2009/04/27, 11:51:59 »
Weten jullie het ook niet? of ben ik gewoon heel dom bezig?

Offline BailHope

  • Lid
    • Techneut
Re: Drawline soms wel en soms niet...
« Reactie #2 Gepost op: 2009/05/03, 10:29:01 »
Ik ga hier ook maar wat veronderstellen, maar kan het dat enkel de laatste lijn getekend wordt? Daar waar je comment zegt 'werkt wel'. Dus alle andere drawLine()-methodes werken niet?

Zo ja, zet die laatste drawLine() eens in comment door er // voor te zetten. Werkt de voorlaatste dan plotseling wel? Zo ja, wordt (blijkbaar) alleen de laatste lijn getekend, en het 'bord' steeds weer proper geveegd voor er iets nieuws op wordt gezet. Ik neem aan dat dit betekent dat je de lijnen moet toevoegen aan iets voor je ze in je layout gooit of zo.
Let wel op, ik heb geen ervaring met Java 2D, dus dit is maar een gokje.

Het tweede dat ik kan bedenken is dat je locaties bij de drawLine()-methoden die niet werken gewoon niet op het scherm weer te geven zijn. Dat die buiten het scherm vallen ofzo.

Maar nogmaals, ik heb absoluut geen ervaring met Java 2D, dus dit zijn allemaal maar gokken!
Ubuntu user #12046
Mijn blog voor techneuten: http://techneut.wordpress.com
Voor de professionele IT'er: http://it-potato.blogspot.com

Shonof

  • Gast
Re: Drawline soms wel en soms niet...
« Reactie #3 Gepost op: 2009/05/06, 20:52:54 »
Het is behoorlijk raar. Probeer maar eens over te kopiƫren.

Offline Arimu

  • Lid
Re: Drawline soms wel en soms niet...
« Reactie #4 Gepost op: 2009/05/06, 22:05:01 »
Volgens mij moet je dat ook in de onpaint zetten.

public void paint( Graphics g ) {
// Hier ga je dus tekenen
}

Offline JvH

  • Lid
Re: Drawline soms wel en soms niet...
« Reactie #5 Gepost op: 2009/05/07, 08:57:47 »
Volgens mij moet je dat ook in de onpaint zetten.

public void paint( Graphics g ) {
// Hier ga je dus tekenen
}
+1 Heb ook heel vaak gedonder gehad als ik in Java probeerde buiten de paint-event te tekenen.
Als ik de paint-method gebruikte was het over het algemeen wel opgelost.

Shonof

  • Gast
Re: Drawline soms wel en soms niet...
« Reactie #6 Gepost op: 2009/05/07, 09:35:24 »
Ik heb het nu zo en werkt nog niet. Volgens mij heb ik het wel goed gedaan...

//paint(graphics);
Als ik bij deze regel het commentaar weg haal, dan print het 2 strepen extra. Die logica snap ik al helemaal niet.

Ik hoop dat er iemand is die mij kan helpen.

import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;

public class Lijnen extends JFrame {

/**
*
*/
private static final long serialVersionUID = 1L;

private JLabel jlblBanner = new JLabel("Banner");

public static void main(String[] args) {
new Lijnen();
}

public Lijnen() {
add(jlblBanner);
setTitle("TestGetGraphics");
setLocationRelativeTo(null); // Center the frame
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800, 600);
setVisible(true);

// Center the JFrame
// Get the size of the screen
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();

// Determine the new location of the window
int wWidth = getSize().width;
int wHeight = getSize().height;
int x = (dim.width - wWidth) / 2;
int y = (dim.height - wHeight) / 2;

// Move the window
setLocation(x, y);

JOptionPane.showMessageDialog(null,
"Delay on purpose\nClick OK to dismiss the dialog");
Graphics graphics = jlblBanner.getGraphics();

//paint(graphics);
}

public void paint(Graphics graphics) {
// Hier ga je dus tekenen

// werkt niet, alleen 1 steeds wel
graphics.drawLine(240, 140, 300, 200);
graphics.drawLine(235, 135, 295, 195);
graphics.drawLine(230, 130, 290, 190);
graphics.drawLine(225, 125, 285, 185);
graphics.drawLine(220, 120, 280, 180);

// werkt wel
graphics.drawLine(500, 500, 550, 550);
}
}

Shonof

  • Gast
Re: Drawline soms wel en soms niet...
« Reactie #7 Gepost op: 2009/05/07, 23:42:16 »
Ik heb antwoord
Voor de belangstellende.
http://forums.sun.com/thread.jspa?messageID=10703771

Alsnog bedankt voor de moeite.