Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Java Swing pitanje

[es] :: Java :: Java Swing pitanje

[ Pregleda: 4113 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

medi
Banja Luka

Član broj: 10638
Poruke: 35
87.250.104.*



Profil

icon Java Swing pitanje01.09.2006. u 00:29 - pre 214 meseci
Code:

import javax.swing.*;
import java.awt.event.*;

public class Test
{
    public static void main(String[] args)
    {
        final JFrame frame = new JFrame("Test");
        final JPanel panel = new JPanel();
        JButton button = new JButton("Test button");
        panel.add(button);
        frame.add(panel);

        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e)
            {
                panel.add(new JButton("Test button"));
            }
        });
        
        frame.setSize(300,200);
        frame.setVisible(true);        
    }
}


Interesuje me na koji način unutar actionPerformed metode narediti frame-u ili panel-u da se ponovo iscrtaju kako bi se pojavili novi dugmići? I ne samo u ovom konkretnom slučaju već i inače, koja metoda se koristi kad je potrebno ponovo iscrtati komponente unutar kontejnera nakon dodavanja ili mijenjanja komponenata?!
 
Odgovor na temu

djura1

Član broj: 16156
Poruke: 111
*.maksnet.net.



+3 Profil

icon Re: Java Swing pitanje01.09.2006. u 09:12 - pre 214 meseci
Nisam 100% siguran, ali mislim da je metod invalidate(). U sustini, natera prozor da osvezi svoj layout. Ipak pogledaj u dokumentaciji za JFrame i njegove nadklase.
 
Odgovor na temu

medi
Banja Luka

Član broj: 10638
Poruke: 35
87.250.104.*



Profil

icon Re: Java Swing pitanje01.09.2006. u 09:51 - pre 214 meseci
Citat:
djura1:[...] ali mislim da je metod invalidate() [...]

... revalidate(). Nije, pokušavao sam da pozovem i revalidate() i repaint(), kako za JFrame tako i za JPanel objekat ali ništa. Jedino što mi prolazi u ovom konkretnom slučaju je ponovno pozivanje metode setVisible(true). Ali, to je samo u ovom jednostavnom primjeru, u komplikovanijim slučajevima ni to ne radi, a i sumnjam da je to prava metoda za to.

 
Odgovor na temu

JPF
Beograd

Član broj: 3542
Poruke: 37
*.ptt.yu.



+2 Profil

icon Re: Java Swing pitanje01.09.2006. u 10:14 - pre 214 meseci
Trebalo bi da ti rade i panel.revalidate() i panel.validate().

http://java.sun.com/j2se/1.4.2...va/awt/Container.html#validate()

Citat:
The validate method is used to cause a container to lay out its subcomponents again. It should be invoked when this container's subcomponents are modified (added to or removed from the container, or layout-related information changed) after the container has been displayed.
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.etf.bg.ac.yu.



+13 Profil

icon Re: Java Swing pitanje01.09.2006. u 11:12 - pre 214 meseci
http://mindprod.com/jgloss/repaint.html
 
Odgovor na temu

djalfirevic

Član broj: 76932
Poruke: 497
*.dynamic.sbb.co.yu.



Profil

icon Re: Java Swing pitanje03.09.2006. u 07:52 - pre 214 meseci
Citat:
djura1: Nisam 100% siguran, ali mislim da je metod invalidate(). U sustini, natera prozor da osvezi svoj layout. Ipak pogledaj u dokumentaciji za JFrame i njegove nadklase.


Hmmm....
Zašto mi se čini da si programirao u MFC-u... Tamo je metoda Invalidate() za ponovno iscrtavanje prozora.

 
Odgovor na temu

[es] :: Java :: Java Swing pitanje

[ Pregleda: 4113 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.