Toon posts:

[java] newbie, gui > verwijderen van componenten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo, ik zit nu alweer een 2tal dagen tegen het volgende probleem aan te hikken (n00b :) ) maar ik kom er echt niet uit ...

Het probleem :
Ik roep d.m.v. een andere button of menuknopje o.i.d. de method addButton aan. Allemaal leuk en aardig, maar nu wil ik ook weer op zo'n zelfde manier een "willekeurige" knop verwijderen ... mm dit is misschien niet echt duidelijk.

Zie het als een soort mirc knopje voor /leave commando .. dus /leave #blabla. Dat dan het knopje bovenaan in die balk verwijdert wordt. Iets beter al ? :)

Java:
1
2
3
4
5
6
7
8
9
10
11
    public void addButton(String buttonName) {
        JButton newButton = new JButton(buttonName);
        JPanel mp = (JPanel) _menupanel;

        mp.add( newButton );
        mp.updateUI();
    }

    public void removeButton(buttonName) {
        // ... hier dus beetje radeloos
    }


Had al een beetje lopen zoeken door het forum hier, maar niet echt veel gevonden.
Ik hoop dat jullie me verder kunnen helpen. _/-\o_

Groetjes

draak

  • Jelmer
  • Registratie: Maart 2000
  • Nu online
wat is het tegenovergestelde van add? juist, remove ;)

Container.remove(Component);

oh wacht, ik zie dat je ze op naam wil adresseren. Gebruik in dat geval een HashMap oid en voeg daar de componenten ook aan toe. Daarin worden ze op naam geïndexeerd en zijn ze dus ook weer terug te vinden.

[ Voor 78% gewijzigd door Jelmer op 15-03-2003 18:55 ]


Verwijderd

Topicstarter
ja zo ver was ik al :)

maar hoe kan je dan die random button terugvinden in de component index van die container ?


edit : hehehe

[ Voor 8% gewijzigd door Verwijderd op 15-03-2003 18:56 ]


  • Jelmer
  • Registratie: Maart 2000
  • Nu online
wat je ook kan doen is: Container.getComponents en dan dat array gaan itereren op instanceof JButton && JButton.getText().equals(bntNaam);

[ Voor 4% gewijzigd door Jelmer op 15-03-2003 18:58 ]


Verwijderd

Topicstarter
ok thanx, dat wordt weer een avondje api-duikelen :)

Verwijderd

Topicstarter
dat laatste krijg ik iig niet aan de praat :/

Java:
1
2
3
4
5
6
7
8
9
10
11
    public void removeButton(String buttonName) {
        JPanel mp = (JPanel) _menupanel;

        btArray = mp.getComponents();
        
    for (int i = 0; i < btArray.length; i++) {
            if( btArray[i] instanceof JButton && JButton.getText().equals(buttonName)) {
                System.out.println(btArray[i]); // doe maar ff wat ;)
            }
    }
}


gaatie weer zeuren dat de getText method niet vanuit static context kan aanroepen :'( ... zonder het gedeelte na && doettie het wel trouwens, maar dan schiet het probleem opzich nog weinig mee op :)

  • nxt
  • Registratie: November 2001
  • Laatst online: 12-06 10:00

nxt

vervang JButton.getText()
eens door ((JButton)btArray[i]).getText()

Verwijderd

Verwijderd schreef op 15 March 2003 @ 19:58:
dat laatste krijg ik iig niet aan de praat :/

Java:
1
2
3
4
5
6
7
8
9
10
11
    public void removeButton(String buttonName) {
        JPanel mp = (JPanel) _menupanel;

        btArray = mp.getComponents();
        
    for (int i = 0; i < btArray.length; i++) {
            if( btArray[i] instanceof JButton && JButton.getText().equals(buttonName)) {
                System.out.println(btArray[i]); // doe maar ff wat ;)
            }
    }
}


gaatie weer zeuren dat de getText method niet vanuit static context kan aanroepen :'( ... zonder het gedeelte na && doettie het wel trouwens, maar dan schiet het probleem opzich nog weinig mee op :)
Dat komt omdat jij getText() op de klasse aanroept en niet op de instantie.
Jij doet:
JButton.getText();

en het zou moeten zijn:
btArray[i].getText();

Vandaar dat de compiler zeurt dat je getText() niet als static kunt aanroepen.

Verwijderd

Topicstarter
k thanks people, ben weer een stukkie verder :)
Pagina: 1