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

ActionCommand na grupi dugmica ?

[es] :: Java :: ActionCommand na grupi dugmica ?

[ Pregleda: 1671 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Cyberghost
Aleksandar Jovanović
Programer
S U M A D I J A

Član broj: 14674
Poruke: 813
*.donet.co.yu.



+1 Profil

icon ActionCommand na grupi dugmica ?24.08.2006. u 08:32 - pre 215 meseci
Evo koda:

Code:

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


public class RadioDugmad extends JFrame 
{
        public static void main(String args[])
    {
        JTextField jtf=new JTextField(5);
        
        JRadioButton jrb1=new JRadioButton("C");
        JRadioButton jrb2=new JRadioButton("C++");
        JRadioButton jrb3=new JRadioButton("Java");
        
        ButtonGroup bg=new ButtonGroup();
        bg.add(jrb1);
        bg.add(jrb2);
        bg.add(jrb2);
        
        JFrame frame=new JFrame("Primer za Radio dugmice");
        frame.setLayout(new FlowLayout(FlowLayout.CENTER));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(250,100);
        
        Container cont=frame.getContentPane();
        cont.add(jrb1,BorderLayout.WEST);
        cont.add(jrb2,BorderLayout.WEST);
        cont.add(jrb3,BorderLayout.WEST);        
        cont.add(jtf,BorderLayout.SOUTH);
        
        frame.setVisible(true);
            
    }
}


Potrebno je kada kliknem na neko od dugmica iz grupe da mi ispise njego nazi u Text polju. Pise u knjizi da treba da dogadjaj obradim metoda actionPerformed a metoda getActionCommand() vraca tekst pridruzenom dugmetu!
Kako ovo najjednostavnije ugraditi u kod ? Hvala

P.S. U knjizi je to uradjeno pomocu Appleta ali ja hocu sa JFrame.

pozdrav
Every program is either trivial or it contains at least one bug.
 
Odgovor na temu

rj444
Radomir Jakovljevic
Beograd

Član broj: 48212
Poruke: 354
*.etf.bg.ac.yu.



Profil

icon Re: ActionCommand na grupi dugmica ?24.08.2006. u 10:43 - pre 215 meseci
Dodas svakom objektu JRadioButton isti Listener, koji ti napises i implmentiras metodu actionPerformed().
A u toj metodi imas kao parametar prosledjen dogadja Event e.
Od dogadjaja mozes da dobijes Object source koji je u stvari jedan od JRadioButton-a.
Uradis "kastovanje" tog objekta u JRadioButton i metodom getActionCommand() dobijas tekst.

Kompletan kod bi bio: (imao si jedan bag - zaboravio si da Java radio button dodas u grupu)

Code:
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
import javax.swing.JTextField;

public class RadioDugmad extends JFrame 
{

        //ova klasa je staticka  zato sto si ti napisao da se sve radi u main-u. Inace se inicijalizacija radi u konstruktoru, pa bi ova klasa bila nestaticka
        static class MojListener implements ActionListener {
            private JTextField txt; //ovo treba ako hoces da prikazes u JTextField-u nesto           
            
            public MojListener(JTextField txt) {
                super();
                this.txt=txt;
            }
            
            public void actionPerformed(ActionEvent e) {
                //ovo ispod radi zato sto ces na objekte JComboBox da "nakacis" ovaj Listener
                JRadioButton src = (JRadioButton)e.getSource();
                //evo onoga sto ti treba
                String tekst = src.getActionCommand();
                //da proverimo da li je to to
                txt.setText(tekst);
            }
            
        }

        public static void main(String args[])
    {
        JTextField jtf=new JTextField(5);
        
        JRadioButton jrb1=new JRadioButton("C");
        JRadioButton jrb2=new JRadioButton("C++");
        JRadioButton jrb3=new JRadioButton("Java");
        
        //ovde dodamo svim jrb-ovima po jedan Listener
        jrb1.addActionListener(new MojListener(jtf));
        jrb2.addActionListener(new MojListener(jtf));
        jrb3.addActionListener(new MojListener(jtf));
        
        ButtonGroup bg=new ButtonGroup();
        bg.add(jrb1);
        bg.add(jrb2);
        bg.add(jrb3);
        
        JFrame frame=new JFrame("Primer za Radio dugmice");
        frame.setLayout(new FlowLayout(FlowLayout.CENTER));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(250,100);
        
        Container cont=frame.getContentPane();
        cont.add(jrb1,BorderLayout.WEST);
        cont.add(jrb2,BorderLayout.WEST);
        cont.add(jrb3,BorderLayout.WEST);        
        cont.add(jtf,BorderLayout.SOUTH);
        
        frame.setVisible(true);
            
    }
}

 
Odgovor na temu

[es] :: Java :: ActionCommand na grupi dugmica ?

[ Pregleda: 1671 | Odgovora: 1 ] > FB > Twit

Postavi temu Odgovori

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