[java][swing] pbm position JLabel dans Box
Résolu
Bonjour,
Après avoir fouillé une bonne partie de tutoriels sur les Box en java, je ne suis toujours pas parvenu à résoudre mon problème : j'ai une JFrame ou je veux afficher un titre en JLabel et un JTabbedPane en dessous de ce titre.
Le moyen le plus simple semble-t'il est d'utiliser le composant Box. Ca marche nikel mais le pbm c'est que je ne peux pas positionner mon JLabel où je veux, ni gérer la taille de mon premier étage de Box.
Les BorderLayout.CENTER etc...sont totalement inefficace et la Glue me rajoute un espace monstre entre mon titre et mes onglets !
Je ne sais pas si j'ai été très clair mais si qqn à une idée ??
Merci d'avance !
PS : voici mon code !
import java.awt.BorderLayout;
import java.awt.Font;
import javax.swing.Box;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class InterfaceGene{
private static JLabel titre = null;
static JTabbedPane tabbedPane = new JTabbedPane();
public static void main(String[] args) {
final JFrame f = new JFrame();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Box vBox = Box.createVerticalBox();
titre = new JLabel();
titre.setText("Syncroniseur de sous-titres");
Font font = new Font("Arial", Font.BOLD, 20);
titre.setFont(font);
vBox.add(titre, BorderLayout.CENTER);
tabbedPane.setSize(100, 300);
tabbedPane.addTab("Synchro Auto", InterfaceAuto.getJContentPane());
tabbedPane.addTab("Synchro Manu", InterfaceManu.getJContentPane());
vBox.add(tabbedPane);
f.add(vBox,BorderLayout.CENTER);
f.setSize(610, 650);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.setTitle("Sub Syncrone");
}
});
}
}
Après avoir fouillé une bonne partie de tutoriels sur les Box en java, je ne suis toujours pas parvenu à résoudre mon problème : j'ai une JFrame ou je veux afficher un titre en JLabel et un JTabbedPane en dessous de ce titre.
Le moyen le plus simple semble-t'il est d'utiliser le composant Box. Ca marche nikel mais le pbm c'est que je ne peux pas positionner mon JLabel où je veux, ni gérer la taille de mon premier étage de Box.
Les BorderLayout.CENTER etc...sont totalement inefficace et la Glue me rajoute un espace monstre entre mon titre et mes onglets !
Je ne sais pas si j'ai été très clair mais si qqn à une idée ??
Merci d'avance !
PS : voici mon code !
import java.awt.BorderLayout;
import java.awt.Font;
import javax.swing.Box;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTabbedPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
public class InterfaceGene{
private static JLabel titre = null;
static JTabbedPane tabbedPane = new JTabbedPane();
public static void main(String[] args) {
final JFrame f = new JFrame();
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Box vBox = Box.createVerticalBox();
titre = new JLabel();
titre.setText("Syncroniseur de sous-titres");
Font font = new Font("Arial", Font.BOLD, 20);
titre.setFont(font);
vBox.add(titre, BorderLayout.CENTER);
tabbedPane.setSize(100, 300);
tabbedPane.addTab("Synchro Auto", InterfaceAuto.getJContentPane());
tabbedPane.addTab("Synchro Manu", InterfaceManu.getJContentPane());
vBox.add(tabbedPane);
f.add(vBox,BorderLayout.CENTER);
f.setSize(610, 650);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.setTitle("Sub Syncrone");
}
});
}
}
11 réponses
-
Pourquoi tu utilise un box ???
-
Ben j'ai pas réussi à mettre un titre au dessus de mes onglets, ya un autre moyen !!????????????,
-
je comprends pas un titre au dessus des onglets. tu peut le faire normalement.
Ton problème c'est que le JtabePanne prend toute la frame sinon ? -
oui voilà !! (désolé je suis pas clair du tout !)
-
même en utilisant un layout ???
-
style
JLabel label = new JLabel("Syncroniseur de sous-titres" (PAGE_START)");
pane.add(label, BorderLayout.PAGE_START);
JTabbedPane tabbedPane = new JTabbedPane((CENTER));
pane.add( tabbedPane, BorderLayout.CENTER); -
ben le Layout tu l'abbplique au tabbedpan ? et puis le pbm c'est que tu peux pas lui donner (au tabbedpane) le taille que tu veux avec un layout non ?
(je suis une grosse quiche en java désolé, et merci de repondre si vite !) -
ah attends j'essaye ça !
-
euh pardon vire les parenthèses stupide des première lignes lol
JLabel label = new JLabel("Syncroniseur de sous-titres" );
pane.add(label, BorderLayout.PAGE_START);
JTabbedPane tabbedPane = new JTabbedPane();
pane.add( tabbedPane, BorderLayout.CENTER); -
Whouuuaaaaaa mais ça marche très trop bien ! merci mille fois !
comme quoi j'ai cherché vraiment trop compliqué !
merci encore ! -
Lol de rien tant mieux pour toi !