[ Laki123 @ 02.06.2006. 19:18 ] @
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.
[ Toxter @ 02.06.2006. 21:42 ] @
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!
[ Laki123 @ 03.06.2006. 18:52 ] @
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.
[ Toxter @ 03.06.2006. 19:44 ] @
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!
[ Laki123 @ 04.06.2006. 11:40 ] @
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.
[ Toxter @ 04.06.2006. 15:36 ] @
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!
[ Laki123 @ 04.06.2006. 19:47 ] @
To mi je trebalo. Hvala puno na trudu i pomoci.