[java] popup melding en freeze van Scrollbar

Pagina: 1
Acties:

  • lester
  • Registratie: Januari 2001
  • Niet online
vage topic titel? ja, maar ik heb geen id hoe het heet wat ik zoek :)

ik zal het even uitleggen:

Ik leer momenteel java en heb een applet gemaakt ( http://www.squadraat.com/zooi/ ) maar nu wil ik graag dat als het bovenste punt van de arm van de hijskraan buiten het scherm komt dat er een popupje komt met een melding dat dat niet kan. En dat de Scrollbar dan weer terug gaat naar het punt dat het nog net wel kon.

mijn code voor de arm ziet momenteel zo uit:
Java:
1
2
3
4
5
6
7
8
9
g.drawLine(beginX, beginY, beginX+eindX, beginY-eindY);
        if (armGraad < 44){
            armBeginX = beginX-1;
            armEindX = beginX+eindX-1;
        } else {
            armBeginY = beginY-1;
            armEindY = beginY-eindY-1;
        }       
g.drawLine(armBeginX, armBeginY, armEindX, armEindY);


nu zou ik dus graag willen dat als armEindY kleiner dan 1 wordt dat er een melding komt met bv: "je kan de arm niet buiten het scherm bewegen, ga eerst naar beneden voordat je de arm omhoog doet" en dat armEindY weer naar 1 gaat.

ik heb gezocht in de libraries en op Inet maar ik heb geen id naar wat ik moet zoeken, dus als jullie mij een duwtje in de goede richting zouden willen geven zou ik zeer dankbaar zijn :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

volgens mij moet dit met logica wel te fixen zijn:

if(controleCoordinaten(xNew,yNew)){
...x = xNew;
...y = yNew;
...teken iets met x en y
}else{
...foutmelding
}

Ik zie trouwens dat je een mooie integratie hebt van tekenen code en je logica. Als ik jou was ging ik dat echt scheiden. Ik zou dus een aparte class maken:

class HijsKraan{
...int x;
...int y;
...constructor
...getX
...getY
...move
}
class hijskraan die heeft dus absoluut geen teken-methodes.. hij bezit alleen maar informatie over hoe hij moet bewegen.

En dan een teken routine maken:
teken(HijsKraan hijsKraan)

Hierdoor kan je veel beter een overzicht houden. (Je komt zometeen om in de code).

  • lester
  • Registratie: Januari 2001
  • Niet online
om het met logica te doen dat leek mij ook het beste, maar ik weet niet wat de lib. is van foutmeldingen/popup schermen, als die er uberhaubt al is :)

Ik heb al wel wat aparte classes voor de arm, de hijskraan zelf etc, hier staat de code, bedoel je dat ik dan nog meer de boel moet scheiden?

alvast bedankt voor je hulp :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Voor een foutmelding moet je even zoeken op Dialog geloof ik(ik werk zelf niet met AWT).

En je moet die gui eigelijk als een bij-product zien. Je ontwerp volledig gui onafhankelijk je model. Hierin staat al je data mbt de hijskraan en ook staat hierin al je logica. En kan je dit soort acties erop uitvoeren:

hijskraan.draai(60);
hijskraan.laatKabelZakken(40);
hijskraan.move(10,20);
int x=hijsKraan.getXPos();
int y =hijsKraan.getYPos();
int hoogte = hijsKraan.getMastHoogte();
int hoek = hijsKraan.getHoek();

Ik zal je verder niet een volledige MVC (Model View Controller, zo heet deze aanpak) aandoen. Maar later maak je gewoon een routine: tekenHijskraan(Hijskraan hijskraan). Deze methode die gaat dan je hijskraan tekenen. En iedere keer dat je een verandering hebt gedaan aan die hijskraan, roep je even die teken routine aan en krijg je weer de nieuwste versie op je scherm te staan.

Doordat je dus teken code en hijskraan code van elkaar gaat scheiden krijg je een veel beter ontwerp die dus veel overzichtelijker is.

mijn advies is dus:
laat die gui even links liggen, en ontwerp eerst alle zaken mbv tot die hijskraan. En later kan je in het grafische gedeelte altijd nog een teken routine maken voor die hijskraan.

  • lester
  • Registratie: Januari 2001
  • Niet online
ik zie wel dat die manier beter is, zeker als je programma groter wordt, maar ik leer het zo uit het boek en bij college, dus ik hou voor deze opdracht denk ik nog maar even de "verkeerde" manier aan, aangezien ik nu nog op het boek kan terugvallen als ik iets niet snap :)

Maar je manier zal ik zeker proberen meer toe te passen, bedankt voor je info :)

Ik zal ook nog op zoek gaan naar meer info over Dialog

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Dan wil dit wel eens helpen. Ik heb die links bij mijn bookmarks staan omdat ik er regelmatig antwoord kan vinden op mijn vragen.

  • lester
  • Registratie: Januari 2001
  • Niet online
tnx handige link! genoeg leesvoer weer :)

http://java.sun.com/products/jlf/ed2/book/HIG.Dialogs5.html dit ziet er wel uit als wat ik graag wil :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

JFC = de oude naam voor Swing :)

Maar als je ook jdk>1.1 mag draaien, dan is het nog veel simpeler:
JOptionPane
Pagina: 1