Toon posts:

[JAVA] GUI probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een stukje code geschreven dat een matrix met componentjes genereert,

dit werkt goed,
1 probleem, de combobox klapt niet uit, de andere componentjes doen echter wel wat er van hun wordt verwacht

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class GUITest extends Panel
{
public GUITest()
{
    setLayout(new GridLayout(20,5));
    for (int i = 0; i<20 ; i++)
    {
    JTextField f= new JTextField();
    JComboBox c = new JComboBox();
    c.addItem("lala");
    c.addItem("lili");
    
    JTextField f2= new JTextField();
    JCheckBox jcb = new JCheckBox();
    JButton jb = new JButton();
    jb.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e)
        {
            System.out.println("lala");
        }
        });
    add(f);
    add(c);
    add(f2);
    add(jcb);
    add(jb);
    
    }
    
}
public static void main(String [] args)
{
GUITest gt = new GUITest();



JFrame jf =  new JFrame();


jf.getContentPane().add(new GUITest());
jf.setVisible(true);
}
}

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

Alarmnummer

-= Tja =-

Ik zie dat je AWT(Panel) aan het mixen bent met Swing (JButton, JCombobox). Maak van die Panel eens een JPanel.

Verwijderd

Topicstarter
erg bedankt

ik ben van plan hier erg veel componentjes in te stoppen

een 200 rijen van componentjes

dit gaat echter nog vrij traag
is er een model dat dit een beetje sneller zou kunnen?

  • esf
  • Registratie: Juni 2002
  • Laatst online: 11-03 14:06

esf

Wees eens wat duidelijker in je vraagstelling. Wat bedoel je met de componentjes die je waar in wilt stoppen en wat is "een 200 rijen van componentjes"?
En wat gaat er dan traag? Misschien is het beter eerst wat meer gegevens te geven en het probleem duidelijker te omschrijven zodat er gemakkelijker geantwoord kan worden..

The hardest thing in the world to understand is the income tax. - Albert Einstein


Verwijderd

Topicstarter
ok sorry,

zoals in bovenstaande code worden er dus rijen aangemaakt van swingcomponentjes,
nu zou ik zoiets van een 200-tal rijen willen maken

in mijn nieuwe versie heb ik een textfield en knop waar kan worden ingegeven hoeveel rijen er nodig zijn
dan worden die rijen onder de knop gegenereerd
dit gaat redelijk traag

nu is er wel iets bizar, als ik meerdere keren op die knop druk, gaat het iets sneller, hoewel ik toch wel steeds opnieuw die rijen aanmaak (de objecten dus opnieuw aanmaak)

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

Alarmnummer

-= Tja =-

Waarom ben je eigelijk zoveel componenten kwijt? En eventueel zou je het kunnen oplossen door gebruik te maken van een JTable. Je gaat dan in iedere cell zo`n component plaatsen en uiteindelijk wordt er van ieder component maar 1 instantie aangemaakt (althans, het ligt eraan hoe je je tablecellen laat renderen). Ik denk dat je hierdoor wel een snellere gui kan krijgen, maar dit is geen eenvoudige opgave.

check dit voor ideeen.

vb
Afbeeldingslocatie: http://www2.gol.com/users/tame/swing/examples/images/table14.gif

Afbeeldingslocatie: http://www2.gol.com/users/tame/swing/examples/images/table8a.gif

[ Voor 28% gewijzigd door Alarmnummer op 14-03-2003 13:58 ]


  • esf
  • Registratie: Juni 2002
  • Laatst online: 11-03 14:06

esf

Verwijderd schreef op 14 March 2003 @ 12:05:
nu is er wel iets bizar, als ik meerdere keren op die knop druk, gaat het iets sneller, hoewel ik toch wel steeds opnieuw die rijen aanmaak (de objecten dus opnieuw aanmaak)
Dit komt trouwens waarschijnlijk door enige optimalisaties die Java uitvoert. Ik heb zoiets ook ooit gehad met het laden van een plaatje in een spel. Daar heb ik in het openingsscherm onzichtbaar de plaatjes alvast een keer geladen, waarna ze in het hoofdscherm heel snel geladen konden worden, zonder dat ik ze ergens opgeslagen of doorgegeven heb. Misschien zou je hier gebruik van kunnen maken door aan het begin van het programma een groot aantal componentjes aan te maken dat waarschijnlijk niet zo snel overschreden zal worden, zodat het de daarop volgende keren sneller gaat, maar dat is natuurlijk niet echt een nette manier omdat je niet echt zuinig omgaat met je geheugen. Maar als andere methoden echt niet werken...

[ Voor 48% gewijzigd door esf op 19-03-2003 19:18 ]

The hardest thing in the world to understand is the income tax. - Albert Einstein

Pagina: 1