Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 3.486 pregleda

Najnovija ↓

Problem sa JTabbedPane 02.06.2006. u 20:18 · pre 248 meseci #1
Imam jedan JTabbedPane koji treba da ima vise tabova, na kojima ce biti 2 JTextField i 2 JComboBox.
Znaci svaki tab treba da bude potpuno isti, s tim da se menja jedino vrednost u ComboBox-u u zavisnosti od toga koji je tab aktivan.
Kako da napravim ovo (znaci da imam samo 2 JTextField i 2 JComboBox), a da ne moram za svaki tab da pravim nove JTextField-ove i JComboBox-ove.
Re: Problem sa JTabbedPane 02.06.2006. u 22:42 · pre 248 meseci #2
Ne znam u kojoj situaciji ti ovo treba.
Pokusaj ovako: Stavis te 4 komponente na jedan panel,
taj isti panel stavis na sve tabove i onda ispitujes koji je tab selektovan:
Code:
jTabbedPane1.addChangeListener(new ChangeListener(){
    public void stateChanged(ChangeEvent e) {
              if (jTabbedPane1.getSelectedIndex()==0){
                    //ovde setuje sadrzaj combobox-ova i textfield-ova za slucaj da je selektovan prvi tab
              }else if (jTabbedPane1.getSelectedIndex()==1){
                    //ovde za drugi tab
              }//else... i tako dalje
       }


Pozdrav!
Potpis
Sad mu nije nista, ubio si ga k'o zeca...
Re: Problem sa JTabbedPane 03.06.2006. u 19:52 · pre 248 meseci #3
To sam vec ranije probao i ne radi. Stavim 4 komponente na jedan panel, i kada stavim taj isti panel na sve tabove, bude samo jedan tab, tj. ako stavim ovako nesto:
Code:
Tabovi.addTab("proba", null, mojPanel);
Tabovi.addTab("proba2", null, mojPanel);

napravice se samo jedan tab, jedino ako stavim razlicite panele onda ce napraviti i drugi, treci... tab.
Re: Problem sa JTabbedPane 03.06.2006. u 20:44 · pre 248 meseci #4
Citat:
Laki123: To sam vec ranije probao i ne radi. Stavim 4 komponente na jedan panel, i kada stavim taj isti panel na sve tabove, bude samo jedan tab, tj. ako stavim ovako nesto:
Code:
Tabovi.addTab("proba", null, mojPanel);
Tabovi.addTab("proba2", null, mojPanel);

napravice se samo jedan tab, jedino ako stavim razlicite panele onda ce napraviti i drugi, treci... tab.



Pa dobro, stavi cetiri panela na kojima su iste komponente.

Pozdrav!
Potpis
Sad mu nije nista, ubio si ga k'o zeca...
Re: Problem sa JTabbedPane 04.06.2006. u 12:40 · pre 248 meseci #5
Citat:
Pa dobro, stavi cetiri panela na kojima su iste komponente.


I ovo sam ranije pokusavao, ako tako uradim onda ce samo poslednji panel (tab) imati te komponente, a ostali ce biti prazni.
Re: Problem sa JTabbedPane 04.06.2006. u 16:36 · pre 248 meseci #6
Da, ovo ti se desava zato sto je Swing dizajniran tako da svaki kontejner ima razlicite objekte.
Elem, evo nacina kako da to izbegnes:
Code:
package pak1;

import java.awt.AWTEvent;
import java.util.Vector;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.JComboBox;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class Test extends JFrame {

    private JTabbedPane jTabbedPane = null;
    private JPanel jPanel1 = null;
    private JPanel jPanel2 = null;
    private JTextField jTextField1 = null;
    private JTextField jTextField2 = null;
    private JComboBox jComboBox1 = null;
    private JComboBox jComboBox2 = null;
    
    public static void main(String[] args) {
        Test t = new Test();
        t.show();
    }

    public Test() {
        super();
        initialize();
    }
   
    private void initialize() {
        this.setSize(401, 253);        
        this.setTitle("JFrame");
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);
        
        jTextField1 = new JTextField();
        jTextField1.setBounds(new java.awt.Rectangle(41,13,75,20));
        jTextField2 = new JTextField();
        jTextField2.setBounds(new java.awt.Rectangle(41,37,76,20));
        
        Vector v1 = new Vector();
        v1.add("first"); v1.add("second");v1.add("third");
        Vector v2 = new Vector();
        v2.add("first"); v2.add("second");v2.add("third");
        jComboBox1 = new JComboBox(v1);
        jComboBox1.setBounds(new java.awt.Rectangle(142,13,85,25));        
        jComboBox2 = new JComboBox(v2);
        jComboBox2.setBounds(new java.awt.Rectangle(143,44,84,25));
        
        
        
        jPanel1 = new JPanel();
        jPanel1.setLayout(null);
        jPanel1.add(jTextField1, null);
        jPanel1.add(jTextField2, null);
        jPanel1.add(jComboBox1, null);
        jPanel1.add(jComboBox2, null);
        addToJpanel(jPanel1);
        
        jPanel2 = new JPanel();
        jPanel2.setLayout(null);
        
        jTabbedPane = new JTabbedPane();        
        jTabbedPane.setBounds(new java.awt.Rectangle(39,17,295,174));
        jTabbedPane.addTab("first", jPanel1 );
        jTabbedPane.addTab("second", jPanel2);
        jTabbedPane.repaint();
        
        this.getContentPane().setLayout(null);
        this.getContentPane().add(jTabbedPane);         
        
        jTabbedPane.addChangeListener(new ChangeListener(){
           
            public void stateChanged(ChangeEvent e) {
                JPanel thisTabJpanel = (JPanel)jTabbedPane.getSelectedComponent();
                addToJpanel(thisTabJpanel);
                if(jTabbedPane.getSelectedIndex() == 0){
                    jTextField1.setText("first");
                }else if(jTabbedPane.getSelectedIndex() == 1){
                    jTextField1.setText("second");
                }
            }
            
        });
    }

    private void addToJpanel(JPanel jpanel) {
        jpanel.add(jTextField1, null);
        jpanel.add(jTextField2, null);
        jpanel.add(jComboBox1, null);
        jpanel.add(jComboBox2, null);
    }

    

}


Pozdrav!
Potpis
Sad mu nije nista, ubio si ga k'o zeca...
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme