IHM en JAVA : Changement de Panel via ComboBx

Fermé
Florian_A - 16 sept. 2009 à 23:19
 TheRedXPeace - 4 juil. 2010 à 18:54
Bonjour,

Je suis novice dans le Java.
J'ai un projet à réalisé et en ce moment je me penche sur l'interface de mon programme.

Sur mon JPanel principal, j'ai un JTabbedPane "Ajouter" qui contient lui meme un JPanel avec répartit en BorderLayout NORTH et CENTER.
J'ai créé un JComboBox dans la partie NORTH.

Mon souhait serais que lorsque je selectionne une option dans ma JComboBox, la partie SOUTH change de JPanel. Hors dans mon prog, ce n'est pas vraiment dynamique:

code:JAVA
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Window2 extends JFrame {
	private Container mainPane = new JPanel();
	private JTabbedPane mainTabbed = new JTabbedPane();//mon onglet
	private Container ajoutPane = new JPanel();// le panel principal de l'onglet
	private JPanel ajoutPaneNORTH = new JPanel();//le panel nord du panel principal de l'onglet
	private JLabel ajoutLabelListe = new JLabel("Ajouter un ");
	private String[] ajoutListe1 = new String[]{"Panel CENTER red","Panel CENTER bleu","Panel CENTER vert"};
	private JComboBox ajoutListe = new JComboBox(ajoutListe1);//ComboBox
	private JPanel ajoutPaneCENTER1 = new JPanel();//le panel centre voulu pour panel principal de l'onglet
	private JPanel ajoutPaneCENTER2 = new JPanel();//le panel centre voulu pour panel principal de l'onglet
	private JPanel ajoutPaneCENTER3 = new JPanel();//le panel centre voulu pour panel principal de l'onglet
	
	public Window2() {
		
		////Fenetre principale////
		this.setTitle("ITconsult v1");
		this.setSize(410,510);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setLocationRelativeTo(null);
		this.setResizable(false);
		
		mainPane = getContentPane();
		
		////mainPane////
		mainPane.setBackground(Color.WHITE);
		mainPane.add(mainTabbed);
		mainTabbed.addTab("Ajouter", ajoutPane);

		////ajoutPane////
		ajoutPane.setLayout(new BorderLayout());
		ajoutPane.add(ajoutPaneNORTH, BorderLayout.NORTH);
		ajoutPaneNORTH.setBackground(Color.WHITE);
		ajoutPaneNORTH.add(ajoutLabelListe);
		ajoutPaneNORTH.add(ajoutListe);
		
		//ActionListener
		ajoutListe.addActionListener(new ItemAction());
	}

    class ItemAction implements ActionListener{
   	 
        public void actionPerformed(ActionEvent e) {
        		if (ajoutListe.getSelectedItem() == "Panel CENTER red"){
        			ajoutPane.add(ajoutPaneCENTER1, BorderLayout.CENTER);
        			ajoutPaneCENTER1.setBackground(Color.RED);
        		}
        		else if (ajoutListe.getSelectedItem() == "Panel CENTER bleu"){
        			ajoutPane.add(ajoutPaneCENTER2, BorderLayout.CENTER);
        			ajoutPaneCENTER1.setBackground(Color.BLUE);
        		}
        		else if (ajoutListe.getSelectedItem() == "Panel CENTER vert"){
        			ajoutPane.add(ajoutPaneCENTER3, BorderLayout.CENTER);
        			ajoutPaneCENTER1.setBackground(Color.GREEN);
        		}
            	System.out.println("Action" + ajoutListe.getSelectedItem());
        }               
    }
}
A voir également:

1 réponse

J'aimerai bien connaitre la solution car j'ai le même problème. En C# j'aurai moins perdu du temps...
0