🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
3 messages
3 total messages Started by Passero Mon, 08 Mar 2004 19:41
[Java] GUI probleem grrrr
#2818
Author: Passero
Date: Mon, 08 Mar 2004 19:41
62 lines
3313 bytes
Volgende code blijkt niet te werken. Ik heb me al doodgezocht en vind het
niet. Hij tekent mijn labels niet. De berekeningen kloppen want die heb ik
al uitvoerig gecontroleerd. Kheb ook al vanalles geprobeerd zoals in de
methode tekenKlimatogram de container van het venster mee te geven maar
tevergeefs. Hij wil dus echt mijn paneel niet tonen :s
Wie o wie kan mij helpen.

Dit is de methode:

public JPanel tekenKlimatogram(int hoogte,int breedte)
    {
      //initialisatie enzo
      JLabel[] balken = new JLabel[12];
      double hoogste = hoogsteTemp();
      double laagste = laagsteTemp();
      int witruimte = 5;
      int breedteBalk = (int)(breedte/12 - 13*witruimte);
      int x = witruimte,y=0;
      JPanel grafiek = new JPanel(null);
      grafiek.setSize(hoogte,breedte);
      schaal = new Schaal(hoogste,laagste,hoogte);
      //tekenen van de grafiek zelf
      for(int i = 0;i < tempLijst.length;i++)
      {
        balken[i] = new JLabel();
        balken[i].setBackground(new Color(12,12,12));
        grafiek.add(balken[i]);

balken[i].setBounds(x,y,breedteBalk,(int)schaal.berekenHoogte(tempLijst[i]))
;
        x += breedteBalk + witruimte;
      }
      grafiek.setBackground(new Color(200,30,100));
      return grafiek;
    }

in de testklasse staat dit:

public Test()
  {
    super("Klimatogram");
    Container c = this.getContentPane();
    c.setLayout(new BorderLayout());
    JPanel grafiek = Test.klimatogram.tekenKlimatogram(700,600);
    grafiek.setSize(700,600);
    setBounds(0,0,800,600);
    setVisible(true);
  }

de main methode zorgt voor het opvullen van de arrays en die zijn static dus
ze blijven bestaan daar ben ik zeker van, daar ligt het echt niet aan want
ik heb gecontroleerd op de hoogte van de labels en die kloppen. Het is dus
iets anders.
Een externe klasse gebruiken die zelf grafieken tekent gaat ook niet want
het is voor een project voor school.



---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.600 / Virus Database: 381 - Release Date: 28/02/2004
Re: [Java] GUI probleem grrrr
#2820
Author: Kristoffel
Date: Mon, 08 Mar 2004 22:57
71 lines
3768 bytes
Passero wrote:
> Volgende code blijkt niet te werken. Ik heb me al doodgezocht en vind het
> niet. Hij tekent mijn labels niet. De berekeningen kloppen want die heb ik
> al uitvoerig gecontroleerd. Kheb ook al vanalles geprobeerd zoals in de
> methode tekenKlimatogram de container van het venster mee te geven maar
> tevergeefs. Hij wil dus echt mijn paneel niet tonen :s
> Wie o wie kan mij helpen.
> 
> Dit is de methode:
> 
> public JPanel tekenKlimatogram(int hoogte,int breedte)
>     {
>       //initialisatie enzo
>       JLabel[] balken = new JLabel[12];
>       double hoogste = hoogsteTemp();
>       double laagste = laagsteTemp();
>       int witruimte = 5;
>       int breedteBalk = (int)(breedte/12 - 13*witruimte);
>       int x = witruimte,y=0;
>       JPanel grafiek = new JPanel(null);
>       grafiek.setSize(hoogte,breedte);
>       schaal = new Schaal(hoogste,laagste,hoogte);
>       //tekenen van de grafiek zelf
>       for(int i = 0;i < tempLijst.length;i++)
>       {
>         balken[i] = new JLabel();
>         balken[i].setBackground(new Color(12,12,12));
>         grafiek.add(balken[i]);
> 
> balken[i].setBounds(x,y,breedteBalk,(int)schaal.berekenHoogte(tempLijst[i]))
> ;
>         x += breedteBalk + witruimte;
>       }
>       grafiek.setBackground(new Color(200,30,100));
>       return grafiek;
>     }
> 
> in de testklasse staat dit:
> 
> public Test()
>   {
>     super("Klimatogram");
>     Container c = this.getContentPane();
>     c.setLayout(new BorderLayout());
>     JPanel grafiek = Test.klimatogram.tekenKlimatogram(700,600);
>     grafiek.setSize(700,600);
>     setBounds(0,0,800,600);
>     setVisible(true);
>   }
> 
> de main methode zorgt voor het opvullen van de arrays en die zijn static dus
> ze blijven bestaan daar ben ik zeker van, daar ligt het echt niet aan want
> ik heb gecontroleerd op de hoogte van de labels en die kloppen. Het is dus
> iets anders.
> Een externe klasse gebruiken die zelf grafieken tekent gaat ook niet want
> het is voor een project voor school.
> 

Uw JPanel (grafiek) is niet toegevoegd aan uw parent window (JApplet?):
toevoegen in methode Test ():
	c.add (grafiek);

wat het zelfde is als :
	this.getContentPane ().add (grafiek);

Ik denk dat je ook de positie in de Applet of parent window moet bepalen 
in de methode Test () met :
	grafiek.setLocation (x, y);	
	/ x en y zijn de co�rdinaten in parent window (JApplet ?)

K
Re: [Java] GUI probleem grrrr
#2823
Author: Passero
Date: Tue, 09 Mar 2004 15:35
25 lines
2022 bytes
"Kristoffel" <knospam@yahoo.com> schreef in bericht
news:nT63c.28120$y55.1805421@phobos.telenet-ops.be...

>
> Uw JPanel (grafiek) is niet toegevoegd aan uw parent window (JApplet?):
> toevoegen in methode Test ():
> c.add (grafiek);
>

Je hebt gelijk maar dat was het niet. Ik was dit er blijkbaar vergeten
bijzetten.
Het probleem is dat de labels transparant zijn waardoor ze niet getoond
worden, zelfs niet als ik de achtergrond inzet. Ik moet gewoon:
balken[i].setOpaque(true); zetten en het werkt. Hoe lang ik daar niet heb op
zitten zoeken pfffffff

>
> K


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.600 / Virus Database: 381 - Release Date: 28/02/2004
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads