[Java]Refreshen van JPanels() met cardLayout

Pagina: 1
Acties:

  • urkelman
  • Registratie: December 2003
  • Laatst online: 29-04 08:49
Ik heb het volgende probleem:
ik gebruik een cardLayout voor mijn applicatie...
wanneer de app geladen wordt haalt hij de data op uit een db, mocht ik dus wat hebben toegevoegd dan krijg ik dat niet te zien op me andere JPanels...
ik heb een methode gemaakt die bijvoorbeeld artikelen ophaalt en die staat in de constructor, dus die wordt maar 1 keer geladen nl bij het opstarten...ik kan die natuurlijk opnieuw aanroepen door er een refresh knop bij te maken en daar de haalKlanten() methode aan te hangen....maar het moet toch ook zonder die knop kunnen, dat je iets inbouwt dat als je van de ene card in je cardlayout naar de ander gaat dat hij dan die JPanel helemaal opnieuw laad??

nu moet ik dus telkens de app opnieuw opstarten....voordat alle data opnieuw geladen wordt

EDIT:
ik ben nu bezig met het maken van een public boolean reload()
en in de constructor van me panel ga ik dus meegeven dat hij die moet laden, eens kijken of dat werkt..

[ Voor 18% gewijzigd door urkelman op 14-06-2005 14:44 ]


  • urkelman
  • Registratie: December 2003
  • Laatst online: 29-04 08:49
zo ziet mijn class er nu uit:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public boolean reload(){
        //int orderID=0;
        boolean reload=true;
                
            
            database.openCon();
            getOrderID();
            haalDessin();
            haalKlant();
            haalPallet();
            haalTypeDoos();
            haalKokerInschiet();
            //haalDistributie();
            haalPapierSoort();
            haalVoorbereider();
            haalMachine();
        
           
            
        return reload;
    }


en de constructor ziet er zo uit
Java:
1
OrderPaneelCons(String omschrijving, boolean reload){
die boolean class zit dus in het paneel van deze constructor...

om dit paneel aan te roepen heb ik dit gedaan in de constructor van de panel die voor de orderpaneelcons zit:
Java:
1
 pnOrderCons        = new OrderPaneelCons("Orders Consumentrollen", true);


het werkt iig niet, maar weet iemand anders wel een manier??
ik ben een beginner...

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

En nu denk je dat, omdat je een reload functie gemaakt hebt, je applicatie ineens vanzelf gaat refreshen zonder dat je daar logica voor hoeft te schrijven? Omdat die functie "reload" heet betekent nog niet dat die automatisch aangeroepen wordt, dat zul je zelf moeten doen, waarschijnlijk op een bepaald event. Dat kan een timer zijn (elke 5 seconden een refresh) of een listener die kijkt of je data veranderd is, en zo ja, even voor je refresht. Hoe dat moet kan ik je niet vertellen, want ik ben geen Java-programmeur, maar ik weet wel dat je niet puur door naamgeving ervanuit kan gaan dat het vanzelf maar werkt. 8)7

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • urkelman
  • Registratie: December 2003
  • Laatst online: 29-04 08:49
haha ja dat snapte ik ook wel, daarom had ik er ook een boolean van gemaakt, als hij true is dan die reload methode aanroepen!!
maar blijkbaar werkt het niet....

[ Voor 13% gewijzigd door urkelman op 14-06-2005 15:08 ]


  • b19a
  • Registratie: September 2002
  • Niet online
-NMe- bedoelt dat je bijvoorbeeld "repaint()" moet aanroepen op het Component zodat dit component opnieuw wordt getekend (met de nieuwe waarden).

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
Niet dat ik het zeker weet maar misschien dat iets als een FocusListener daarmee kan helpen.
Java:
1
public void focusGained(FocusEvent event) {reload();}

Alleen weet ik niet of die wordt aangeroepen wanneer je panels wisselt in een cardlayout.

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 18:23

Robtimus

me Robtimus no like you

Hoe wissel je van panels in je card layout? Dat doe je toch handmatig met first, last, next, previous of show? Roep dan daar ook reload aan, bij voorkeur voor de first/last/next/previous/show zodat dat de user interface niet verandert terwijl hij zichtbaar is.

More than meets the eye
There is no I in TEAM... but there is ME
system specs

Pagina: 1