L'ajout de plus de composant à un JTabbedPan ?

ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015 - 28 avril 2011 à 20:27
 Utilisateur anonyme - 1 mai 2011 à 12:28
Salut tout le monde ;
j'ai rencontré un problème lors d'essaye d'ajouter plus de composants à un JTabbedPane;


public static void main(String[] args) {

final JPanel panel1 = new JPanel();
panel1.setLayout(null);
panel1.setPreferredSize(new Dimension(1045,830));
JScrollPane scrollpane = new JScrollPane(panel1);
final Test mf = new Test();
mf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mf.setBounds(20, 20, 500, 500);
mf.setLayout(new BorderLayout());
final JTabbedPane tabbedPane = new JTabbedPane();
JLabel l=new JLabel();
l.setLayout(null);
l.setSize(new Dimension(2,3));//.setPreferredSize(new Dimension(2,3));
l.setText("entrer les données");
tabbedPane.addTab( "Onglet 1",scrollpane);//je veux aussi ajouter le label
JPanel p1 = mf.new MyJTextPane();
JPanel p2 = mf.new MyJTextPane();
tabbedPane.add("onglet2", p1);
tabbedPane.add("onglet3e", p2);
}


je veux ajouter d'autres composants tel que :texte ,image , bouton ,... ?
aider moi svp ?

5 réponses

Utilisateur anonyme
29 avril 2011 à 18:13
Quel est le problème rencontré ?
Sinon, merci d'utiliser les balises prévues pour le code ! Et aussi de préciser plus comme par exemple pour ta classe Test ect.

Sinon tu n'ajoutes pas une composants à un JTabbedPane, mais plutôt à un JPanel dans un JTabbedPane.

Enlève les mots final qui rendent tes objets constants et donc non modifiable.

Allège ta méthode main car tout ce code doit plutôt être dans une classe que dans cette méthode de lancement.


-- Pylouq : jongleur de clavier AZERTY et de clavier QWERTZ --
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
29 avril 2011 à 20:19
Salut ;

j'ai rencontré un problème maintenant dans les dimensions des composants (par exemple:
button ,label) j'ai pas pu préciser leur taille ,ils s'affichent dans la fenêtre
compléte ?aisni comment spécifier l'ordre de ces composants ,par exemple :le label puis le boutton? c'est un peu difficle ,on ne peut pas faire ça à partir de l'interface (eclipse) ?répondre mi ,je suis vraiment besoin de la réponse pour continuer mon projet ?


package Interface;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JComponent;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.KeyEvent;


public class Onglets extends JPanel {

public Onglets() {
        super(new GridLayout(1, 1));
        
        JTabbedPane tabbedPane = new JTabbedPane();
        tabbedPane.setBackground(new Color(0x0bbbbbb));
        tabbedPane.setForeground(new Color(0x202020));
        ImageIcon icon = createImageIcon("imag.jpg");
        JLabel l=new JLabel();
l.setLayout(null);
l.setSize(new Dimension(2,3));
l.setText("entrer les données");
        JButton b=new JButton();
        b.setText("click");
        b.setLayout(null);
        b.setPreferredSize(new Dimension(2,3));
        
        JComponent panel1 = makeTextPanel("Panel #1"); //ajouter le texte
        JScrollPane scrollpane = new JScrollPane(panel1);
        panel1.add(b);
        panel1.add(l);
        
        tabbedPane.addTab("Données   ", icon, panel1,
                "Données à crypter");
        tabbedPane.setMnemonicAt(0, KeyEvent.VK_1);
        
        JComponent panel2 = makeTextPanel("Panel #2");
        tabbedPane.addTab("Paramétres   ", icon, panel2,
                "Paramétres à fixer");
        tabbedPane.setMnemonicAt(1, KeyEvent.VK_2);
        
        JComponent panel3 = makeTextPanel("Panel #3");
        tabbedPane.addTab("Statistiques   ", icon, panel3,
                "Statistique à analyser");
        tabbedPane.setMnemonicAt(2, KeyEvent.VK_3);
        
        JComponent panel4 = makeTextPanel(
                "Panel #4 (has a preferred size of 410 x 50).");
        panel4.setPreferredSize(new Dimension(410, 50));
        tabbedPane.addTab("Comparaison   ", icon, panel4,
                "Does nothing at all");
        tabbedPane.setMnemonicAt(3, KeyEvent.VK_4);
        
        //Add the tabbed pane to this panel.
        add(tabbedPane);
        
        //The following line enables to use scrolling tabs.
        tabbedPane.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
    }
    
    protected JComponent makeTextPanel(String text) {
        JPanel panel = new JPanel(false);
        JLabel filler = new JLabel(text);
        filler.setHorizontalAlignment(JLabel.CENTER);
        panel.setLayout(new GridLayout(1, 1));
        panel.add(filler);
        return panel;
    }
    
    /** Returns an ImageIcon, or null if the path was invalid. */
    protected static ImageIcon createImageIcon(String path) {
        java.net.URL imgURL = Onglets.class.getResource(path);
        if (imgURL != null) {
            return new ImageIcon(imgURL);
        } else {
            System.err.println("Couldn't find file: " + path);
            return null;
        }
    }
    
    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from
     * the event dispatch thread.
     */
    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("Comparaison");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(new Dimension(441, 242));
        
        //Add content to the window.
        frame.add(new Onglets(), BorderLayout.CENTER);
        
        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }
    
    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
             
UIManager.put("swing.boldMetal", Boolean.FALSE);
createAndShowGUI();
            }
        });
    }
}


0
Utilisateur anonyme
30 avril 2011 à 19:12
Pour la taille de tes composants : setSize.
Pour la position de tes composants : setLocation

Après, tout dépend des layouts utilisés. Il me semble que sans setLocation, tes composants sont mis les uns à la suite des autres.

-- Pylouq : jongleur de clavier AZERTY et de clavier QWERTZ --
0
ImFaith Messages postés 57 Date d'inscription dimanche 6 décembre 2009 Statut Membre Dernière intervention 17 mars 2015
30 avril 2011 à 20:20
ça ne marche pas ;j'ai essayé cette solution
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
1 mai 2011 à 12:28
Pour panel1, utilise plus un JPanel qu'un JComponent et applique lui un setLayout(null).
Sinon àa ne sert à rien de faire setLayout(null) sur un bouton est un label.


-- Pylouq : jongleur de clavier AZERTY et de clavier QWERTZ --
0
Rejoignez-nous