Perdu dans l'affichage de mes images... ca veut ca veut plus...
3 réponses
grillot sebastien
Rebonsoir,
apres une reponse suite a une question sur l'affichage des images avec
gridbaglayout j'ai fais comme indiqué j'ai tout repris depuis le
debut... a savoir afficher une image avec un borderlayout... aucun
soucis puis avec ce code toujours aucun probleme
import java.awt.*; //Package des composants graphiques
import javax.swing.*; //Package de l'interface graphique SWING
class Moncadre extends JFrame
{
public Moncadre()
{
Container contentPane = getContentPane();
GridBagLayout layout = new GridBagLayout();
contentPane.setLayout(layout);
setTitle("AGIC");
Toolkit kt = Toolkit.getDefaultToolkit();//outils graphique
Dimension p = kt.getScreenSize();
int xx = p.width;
int yy = p.height;
setSize(xx/2,yy/2);
setLocation(xx/4,yy/4);
//setSize(500,500);
Icon image = new ImageIcon("dncr_logo_en.gif");
JLabel label = new JLabel(image);
GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.BOTH;
constraints.anchor = GridBagConstraints.WEST;
constraints.weightx = 0;
constraints.weighty = 0;
add(label,constraints,0,0,2,2);
}
public void add(Component c, GridBagConstraints constraints, int x, int
y, int w, int h)
{
constraints.gridx = x;
constraints.gridy = y;
constraints.gridwidth = w;
constraints.gridheight = h;
getContentPane().add(c, constraints);
}
}
public class Graphique
{
public static void main(String[] args)
{
Moncadre frame1 = new Moncadre();
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//Pour fermer la
fenetre
frame1.show();//lance la fenetre
/**
* @author zork
*
* To change the template for this generated type comment go to
* Window - Preferences - Java - Code Generation - Code and Comments
*/
class LoginFrame extends JFrame
{
public static void main(String[] args) {
LoginFrame frame = new LoginFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
}
public LoginFrame()
{
setTitle("PhotoService - Login");
setSize(WIDTH,HEIGHT);
Toolkit kt = Toolkit.getDefaultToolkit();//outils graphique
Dimension p = kt.getScreenSize();
int xx = p.width;
int yy = p.height;
setSize(WIDTH,HEIGHT);
setLocation(xx/4,yy/4);
Container contentPane = getContentPane();
GridBagLayout layout = new GridBagLayout();
contentPane.setLayout(layout);
sessionLabel = new JLabel("Type de session : ");
//Creation et ajout d'un comboBox pour le type de domaine
try{
Connexion_sql myConnexion = new Connexion_sql();
myConnectionSql = myConnexion.connect();
Statement statement = myConnectionSql.createStatement();
String query="SELECT nomDomaine FROM domaine ORDER BY nomDomaine";
ResultSet resultSet = statement.executeQuery(query);
sessionBox = new JComboBox();
while(resultSet.next())
{
sessionBox.addItem( resultSet.getString("nomDomaine"));
}
resultSet.close();
}
catch(Exception ex)
{
}
passwordLabel = new JLabel("Mot de passe :");
passwordPF = new JPasswordField();
private static Connection myConnectionSql;
private static final int WIDTH =250;
private static final int HEIGHT =175;
public void add(Component c, GridBagConstraints constraints, int x, int
y, int w, int h)
{
constraints.gridx = x;
constraints.gridy = y;
constraints.gridwidth = w;
constraints.gridheight = h;
getContentPane().add(c, constraints);
}
private void erreurLogin()
{
JOptionPane.showMessageDialog(this,"Erreur","Erreur de
login",JOptionPane.WARNING_MESSAGE);
passwordPF.setText("");
passwordPF.requestFocus();
Je me doutais que mon message serait rebutant mais si quelqu'un pouvais m'aiguiller s'il vous plait car je commence a tourner en rond la. Merci
Libert Sébastien
"grillot sebastien" a écrit dans le message de news: c0cers$9of$
Je me doutais que mon message serait rebutant mais si quelqu'un pouvais m'aiguiller s'il vous plait car je commence a tourner en rond la. Merci
Salut !
Ce qui est surtout rebutant, c'est de devoir deviner le problème que tu rencontres. Qu'est-ce qui fonctionne dans un cas et pas dans l'autre ? Quel problème rencontres-tu dans le second code ?
++ Sébastien Libert.
"grillot sebastien" <sebastiengrillot@wanadoo.fr> a écrit dans le message de
news: c0cers$9of$2@news-reader3.wanadoo.fr...
Je me doutais que mon message serait rebutant mais si quelqu'un pouvais
m'aiguiller s'il vous plait car je commence a tourner en rond la.
Merci
Salut !
Ce qui est surtout rebutant, c'est de devoir deviner le problème que tu
rencontres.
Qu'est-ce qui fonctionne dans un cas et pas dans l'autre ?
Quel problème rencontres-tu dans le second code ?
"grillot sebastien" a écrit dans le message de news: c0cers$9of$
Je me doutais que mon message serait rebutant mais si quelqu'un pouvais m'aiguiller s'il vous plait car je commence a tourner en rond la. Merci
Salut !
Ce qui est surtout rebutant, c'est de devoir deviner le problème que tu rencontres. Qu'est-ce qui fonctionne dans un cas et pas dans l'autre ? Quel problème rencontres-tu dans le second code ?
++ Sébastien Libert.
jocelyn
Ouh la la.... Ton constructeur est trop complique.... Je comprends qu'il doit s'agir d'une appli de test pour l'instant, mais le constructeur de LoginFrame n'aide pas à trouver ton pb ^^ Bref j'ai repris ton code, j'ai vire tout ce qui etait connexion sgbd, j'ai mis le label avec image a la place de sessionLabel. Au premier lancement, j'ai eu une exception sur un truc effectivement pas tres propre: tu crees ta combo sessionBox dans un try/catch que j'avais commente. J'ai donc mis la creation de cet objet au meme endroit que les autres et ca se passe bien cette fois.
A partir de la plusieurs conseils: 1. Essaie de tronconner ton code en parties bien nettes et bien distinctes. Par exemple tous les contructeurs au meme endroit, tous les ajouts de composants dans la frame idem, ... 2. Place le code de gestion des evenements dans des methodes a part 3. Dans ton cas precis, fais comme moi et ne cree pas la combo dans un try/catch. Si la requete plante pour une raison ou pour une autre, elle n'est pas creee et le programme va planter en entier !
Voila j'attends la suite des evenements :)
Ouh la la.... Ton constructeur est trop complique....
Je comprends qu'il doit s'agir d'une appli de test pour l'instant, mais le
constructeur de LoginFrame n'aide pas à trouver ton pb ^^
Bref j'ai repris ton code, j'ai vire tout ce qui etait connexion sgbd, j'ai
mis le label avec image a la place de sessionLabel.
Au premier lancement, j'ai eu une exception sur un truc effectivement pas
tres propre:
tu crees ta combo sessionBox dans un try/catch que j'avais commente. J'ai
donc mis la creation de cet objet au meme endroit que les
autres et ca se passe bien cette fois.
A partir de la plusieurs conseils:
1. Essaie de tronconner ton code en parties bien nettes et bien distinctes.
Par exemple tous les contructeurs au meme endroit,
tous les ajouts de composants dans la frame idem, ...
2. Place le code de gestion des evenements dans des methodes a part
3. Dans ton cas precis, fais comme moi et ne cree pas la combo dans un
try/catch. Si la requete plante pour une raison ou pour une
autre, elle n'est pas creee et le programme va planter en entier !
Ouh la la.... Ton constructeur est trop complique.... Je comprends qu'il doit s'agir d'une appli de test pour l'instant, mais le constructeur de LoginFrame n'aide pas à trouver ton pb ^^ Bref j'ai repris ton code, j'ai vire tout ce qui etait connexion sgbd, j'ai mis le label avec image a la place de sessionLabel. Au premier lancement, j'ai eu une exception sur un truc effectivement pas tres propre: tu crees ta combo sessionBox dans un try/catch que j'avais commente. J'ai donc mis la creation de cet objet au meme endroit que les autres et ca se passe bien cette fois.
A partir de la plusieurs conseils: 1. Essaie de tronconner ton code en parties bien nettes et bien distinctes. Par exemple tous les contructeurs au meme endroit, tous les ajouts de composants dans la frame idem, ... 2. Place le code de gestion des evenements dans des methodes a part 3. Dans ton cas precis, fais comme moi et ne cree pas la combo dans un try/catch. Si la requete plante pour une raison ou pour une autre, elle n'est pas creee et le programme va planter en entier !