java JApplet: JPanel met JMenuBar en JLayeredPane

Pagina: 1
Acties:

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
Vraag:

Ik heb een JApplet met een JMenuBar en een aantal JPanels (plaatjes van een aantal kaarten)

ik gebruik ook de JLayeredPane van de applet (this.getJLayeredPane())

De JPanels maak in aan door een apparte subclass te maken van JPanel. deze krijgt in de constructor de url van het plaatje mee en tekend deze in paintComponent(Graphics g)

Mijn probleem is nu echter dat wanneer ik dit panel toevoeg aan de JLayeredPane ik de menubar van de applet er achter heb staan.

voor een screenshot:

HTTP://www.zantinge.tmfweb.nl/plaatje.gif

dus mijn vraag is eigenlijk waarom ie dat doet?

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

je weet dat je nooit AWT en swing met elkaar moet mixen he?

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
ja, dat weet ik nu wel
maar dat doe ik toch ook niet
is een JApplet met zijn eigen JLayeredPane en een JPanel en een JMenuBar.

dus dacht dat het dan toch allemaal swing is of niet
en weet dan nog niet wat er fout.

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
oh ja

die menubar heb ik na een tip van Allarmnummer aan de JRootPane gehangen. misschien dat het nog belangrijk is.

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

mmm, kun je de code geven waarin je paint?

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

Alarmnummer

-= Tja =-

Waarom plaatje op je hoofd panel niet gewoon een lading JLabels? Daar kan je super eenvoudig een plaatje mee op het scherm krijgen en het is getest, dus goed. Ik teken al mijn images op deze manier.

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
code:
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
import javax.swing.*;
import java.awt.*;

public class CardPanel extends JPanel
{
  String card;
  Toolkit tools = Toolkit.getDefaultToolkit();

  public CardPanel(String url)
  {
    this.card = url;
  }

  public void paintComponent(Graphics g)
  {
    super.paintComponents(g);
    Image kaart = tools.getImage(card);
    g.drawImage(kaart,10,10,this);
  }

  public String toString()
  {
    return (super.toString() + "   " + "file : " + card);
  }
}

en dan waar ik ze invoeg
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 public void drawCards()
  {
    if(played)  // is er al een kaart gespeeld
    {
    CardPanel playedCard = new CardPanel("d:\\am\\jbuilder\\" + CARD[lastPlayed] + ".gif");
    this.getLayeredPane().add(playedCard,CARDLAYER);  // teken de laatst gespeelde kaart
    }

    if(turn==0||turn==1&&!ai)    // tekend voor de speler die aan de beurt is de kaarten
    {

    for(int k = 0;k<5;k++)
    {
      kaarten1[Index[5*turn+k]].setBounds(50+115*k,330,KAARTBREEDTE,KAARTHOOGTE);
      this.getLayeredPane().add(kaarten1[Index[5*turn+k]], CARDLAYER);
    }
    }

op dit moment is de menubar er al aan toegevoegd en zijn alle kaarten al aangemaakt.

Tevens gebruik ik een layeredpane omdat plaatjes voor en achter elkaar langs moeten kunnen schuiven. dus kan ze niet gewoon op de contentpane gooien.

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

Alarmnummer

-= Tja =-

Wil het eens een keer proberen met een JLabel ipv een JPanel?

  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 11-07 22:38
Op zondag 23 juni 2002 15:58 schreef Alarmnummer het volgende:
Wil het eens een keer proberen met een JLabel ipv een JPanel?
dat werkt maar wat is de lol hiervan dat het met een JLabel wel werkt en met een JPanel niet?
Pagina: 1