Toon posts:

[JAVA] probleem met Actions (plaats van klasse)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik werk met Java 1.4.1.
In de klasse DTMainFrame is een methode verantwoordelijk voor het setten van Acties. De methode setActions:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
   * @use Stelt alle acties per menu in.
   * De volgorde waarin ze worden toegevoegt aan de vector is ook de
   * menuItem volgorde.
   *
   * @see createMenuBar
   */
  protected void setActions() {

    // Vector initialiseren
    FileActions = new Vector();

    // Acties t.b.v. FileMenu. Let op juiste volgorde.

    // FileNew actie instellen
    FileActions.add(new FileNew("Nieuw",
                    createGeneralIcon("New16"),
                    "Nieuw document",
                    new Integer(KeyEvent.VK_N))
                    );

    // FileExit actie instellen
    FileActions.add(new FileExit("Afsluiten",
                    createGeneralIcon("Stop16"),
                    "Afsluiten van de applicatie",
                    new Integer(KeyEvent.VK_A))
                    );
  }


Voor het gemakt doen deze 2 acties (FileNew en FileExit) hetzelfde. FileNew is een inner-class, FileExit is een externe klasse. Deze klasse importeer ik natuurlijk. Beide acties worden aan de menubalk toegevoegt. FileNew werkt wel correct, FileExit niet. Bij FileExit 'klapt' de applicatie eruit. ZONDER een melding op mijn console etc..! Ik zou dus niet weten waarom FileNew wel en FileExit niet correct wordt uitgevoerd.

De source van FileExit:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import javax.swing.AbstractAction;
import javax.swing.ImageIcon;
import java.awt.event.*;

/**
 * @use Action voor het afsluiten van de applicatie.
 * Er wordt niet gecontroleerd of bestanden nog open en niet opgeslagen zijn.
 */

public class FileExit extends AbstractAction {

  public FileExit (String text, ImageIcon icon, String desc, Integer mnemonic) {
    super(text, icon);
    putValue(SHORT_DESCRIPTION, desc);
    putValue(MNEMONIC_KEY, mnemonic);
  }

  public void actionPerformed(ActionEvent parm1) {
    // Applicatie afsluiten
    System.out.println("Exit action");
  }
}


Actions werken toch ook als ze geen inner-class zijn!?!?!

[ Voor 4% gewijzigd door Verwijderd op 26-03-2003 09:29 ]


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

Alarmnummer

-= Tja =-

Het zou idd niet mogen uitmaken (ik heb zowel inner als outerclasses gebruikt voor abstractactions), en ook al zou het wel wat uitmaken , dan had je applicatie nooit zonder bugrepport van je scherm mogen verdwijnen.

[ Voor 20% gewijzigd door Alarmnummer op 26-03-2003 09:39 ]


Verwijderd

Topicstarter
Hmmm ik ben er nog niet uit hoe het kan. Misschien dat iemand mijn source nog eens wil bekijken??? Maar damn dit moet toch gewoon werken!

Op mijn scherm zie ik dus geen bugrepport!!

  • momania
  • Registratie: Mei 2000
  • Laatst online: 00:32

momania

iPhone 30! Bam!

Verwijderd schreef op 26 March 2003 @ 16:26:
Hmmm ik ben er nog niet uit hoe het kan. Misschien dat iemand mijn source nog eens wil bekijken??? Maar damn dit moet toch gewoon werken!

Op mijn scherm zie ik dus geen bugrepport!!
Laat dan even wat meer code zien... bv dus de internal class, iig alles wat te maken heeft met deze actions.

Neem je whisky mee, is het te weinig... *zucht*


Verwijderd

Topicstarter
Er is niet veel code meer.

Je ziet toch hoe de classes FileNew en FileExit worden aangeroepen? De source van FileNew is hetzelfde, maar dan is het een inner-class. Maar voor de volledigheid hierbij nog wat source.
De overige source van MainFrame is niet zinvol. Dat heeft niets met het probleem te maken.

FileNew (inner-class):

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  /**
   * @use Action voor het aanmaken van een nieuw document.
   * Dit is een inner class.
   */
  public class FileNew extends AbstractAction {
    /**
     * @use Constructor
     *
     * @parem text  een <code>String</code> met de zichtbare tekst
     * @parem icon  een <code>ImageIcon</code> voor een incoontje
     * @parem desc  een <code>String</code> met de tooltip omschrijving
     * @parem mnemonic <code>Inteteger</code> met de sneltoets
     */
    public FileNew (String text, ImageIcon icon, String desc, Integer mnemonic) {

      super(text, icon);
      putValue(SHORT_DESCRIPTION, desc);
      putValue(MNEMONIC_KEY, mnemonic);
    }

    public void actionPerformed(ActionEvent e) {
      // Nieuw document maken
      createWFInternalFrame(null);
    }
  }

Verwijderd

Topicstarter
probleem is opgelost. JBuilder 8 zat te kloten. Hij rebuilde mijn source niet goed.
Pagina: 1