Toon posts:

[Java] Probleem Actionlistener vanuit menubalk.

Pagina: 1
Acties:
  • 106 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik ben bezig met een menubar. Nu worden de MenuItems verzonden naar een actionListener zoals hieronder. Deze werkt ook.
Java:
1
2
3
4
5
6
7
8
9
10
11
menuItem = new JMenuItem("Afsluiten", KeyEvent.VK_A);
menuItem.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_F4, ActionEvent.ALT_MASK));
menu.add(menuItem);
menuItem.addActionListener(
new ActionListener(){
  public void actionPerformed( ActionEvent event )
   {
    System.exit(0);
   }
 }      
);

Nu wil ik dat sommige item's een venster openen net zoals mijn buttons dat doen. Nu gebruik ik met mijn buttons cards zoals in de code hieronder:
Java:
1
2
CardLayout cl = (CardLayout)(cards.getLayout());
cl.show(cards,"Order");//show "Order" panel

Maar dit werkt dus niet in mijn menubalk. Dan krijg ik namelijk de melding:

Cannot make a static reference to the non-static field cards

En mijn 2de vraag is, er is ook 1 actionListener welke een html file moet openen. In een aparte browser. Hier staat namelijk de Help Content in. Maar ook dit probleem krijg ik niet voorlekaar. Heb wat lopen kloten met fileOutstream en dergelijke maar dat werkte niet.

[ Voor 3% gewijzigd door Verwijderd op 21-06-2005 15:51 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 04-05 14:55

Janoz

Moderator Devschuur®

!litemod

Dit heeft waarschijnlijk helemaal niks met de menubar oid te maken. Wanneer je geen instantie van de class hebt (wat bijvoorbeeld gebeurt bij het aanroepen van een static methode) zijn alle niet static variabelen natuurlijk ook nog niet geinitialiseerd? Heb je het onderste stuk code soms in je public void main staan?

Ook het openen van een browser heeft heel weinig met de daadwerkelijke actionListener te maken. Volgens mij is er hier op GoT een tijdje terug nog wel een topic geweest over hoe een browser window te openen vanuit java.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Janoz schreef op dinsdag 21 juni 2005 @ 16:18:
Dit heeft waarschijnlijk helemaal niks met de menubar oid te maken. Wanneer je geen instantie van de class hebt (wat bijvoorbeeld gebeurt bij het aanroepen van een static methode) zijn alle niet static variabelen natuurlijk ook nog niet geinitialiseerd? Heb je het onderste stuk code soms in je public void main staan?
Ja, niet doen dus ? Maar gewoon buiten de main ?

En wat het tweede betreft je moet toch wanneer een optie in de menubalk wordt aangeklikt een action gaan uitvoeren. Zoals mijn voorbeeld met afsluiten ?

  • jAnO!
  • Registratie: Januari 2002
  • Laatst online: 01-05 18:22

jAnO!

lalalavanillevla

Het kan prima binnen de main (of het goed is is iets anders), maar dan moet je wel eerst een instantie maken.

Java:
1
2
3
4
5
6
7
8
9
10
11
12
public class Test {

static int NUMBER; // wel vanuit main aan te roepen
int nummer; // niet vanuit main aan te roepen unless instantie

public static void main(String[] args) {
   NUMBER = 3;
  
   Test t = new Test();
   t.nummer = 3;
}
}

etc.

[ Voor 24% gewijzigd door jAnO! op 21-06-2005 16:38 ]

When some people work at a place for ten years they get ten years of experience, other people work at a place for ten years and get one year of experience ten times.


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 04-05 14:55

Janoz

Moderator Devschuur®

!litemod

@eerste:
Misschien is het handiger je ietsje te verdiepen in het verschil tussen niet static, wel static en oop in het algemeen. Probeer te begrijpen wat het verschil is tussen de code die in die main uitgevoerd wordt en de code die in een constructor uitgevoerd wordt.

@tweede:
Ik las het tweede even alsof je een actionListener zocht die dat al kon. Dat is een beetje onzinnig, maar nu ik die zin npg eens lees zie ik dat je inderdaad gewoon naar die implementatie zoekt.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Janoz schreef op dinsdag 21 juni 2005 @ 16:31:
@eerste:
Misschien is het handiger je ietsje te verdiepen in het verschil tussen niet static, wel static en oop in het algemeen. Probeer te begrijpen wat het verschil is tussen de code die in die main uitgevoerd wordt en de code die in een constructor uitgevoerd wordt.
Klopt ik weet het verschil ook wel. Maar ben nu al vanaf vanmorgen bezig en zoek even snel een oplossing zodat ik me weer in andere onderdelen kan verdiepen.
Maar het moet toch ook gewoon mogelijk zijn vanuit de main ??

Zou je mij misschien te link kunnen geven van de topic over het aanroepen van de html file ?

Verwijderd

Topicstarter
Het eerste probleem is opgelost. Ik heb het uit de main gehaald en in de constructor geplaatst en nu werkt het wel. Nu moet ik alleen nog de optie hebben om vanuit Java een index.html aan te roepen doormiddel van de browser ?!?!

Ik kan dat nergens vinden.

  • jAnO!
  • Registratie: Januari 2002
  • Laatst online: 01-05 18:22

jAnO!

lalalavanillevla

in 2 sec met de quicksearch..

klikkerdeklik

When some people work at a place for ten years they get ten years of experience, other people work at a place for ten years and get one year of experience ten times.

Pagina: 1