Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Perdu dans l'affichage de mes images... ca veut ca veut plus...

3 réponses
Avatar
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

}
}

------------------------------------------------------------------------


Dans ce code aucun probleme donc je me dis chouette je vais tester dans
mon code mais la...

voici mon code car il doit bien y avoir quelque chose qui change entre
les 2 mais je vois vraiment pas...



package frames.login;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import connection.*;
import frames.production.*;



/**
* @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();

okButton = new JButton("OK");
okButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
try{
Connexion_sql myConnexion = new Connexion_sql();
myConnectionSql = myConnexion.connect();
Statement statement = myConnectionSql.createStatement();
String query="SELECT pass FROM domaine WHERE pass=
'"+passwordPF.getText()+"' AND
nomDomaine='"+sessionBox.getSelectedItem()+"'";
System.out.println(query);
ResultSet resultSet = statement.executeQuery(query);
String resultatQuery="NULL";
while(resultSet.next())
{
resultatQuery=resultSet.getString("pass");
}
resultSet.close();
if(resultatQuery=="NULL")
{
erreurLogin();
}
else
{
if(sessionBox.getSelectedItem().equals("production"))
{
productionLogin();
}
else if(sessionBox.getSelectedItem().equals("vente"))
{
venteLogin();
}
}
}
catch(Exception ex)
{
}
}

});
cancelButton = new JButton("Annuler");
cancelButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
System.exit(0);
}
});

-->> Icon image = new ImageIcon("dncr_logo_en.gif");
->> label = new JLabel(image);
GridBagConstraints constraints = new GridBagConstraints();
constraints.fill = GridBagConstraints.BOTH;
constraints.anchor = GridBagConstraints.WEST;
constraints.weightx = 0;
constraints.weighty = 0;

//add(sessionLabel,constraints,0,0,2,2);

-->> add(label,constraints,0,0,2,2);
/*add(sessionBox,constraints,2,0,2,2);
add(passwordLabel,constraints,0,2,2,2);
constraints.fill = GridBagConstraints.BOTH;
add(passwordPF,constraints,2,2,2,2);
constraints.fill = GridBagConstraints.NONE;
constraints.anchor = GridBagConstraints.CENTER;
add(okButton,constraints,0,4,2,1);
add(cancelButton,constraints,2,4,2,1);*/

}

private JLabel sessionLabel;
private JComboBox sessionBox;
private JLabel passwordLabel;
private JPasswordField passwordPF;
private JButton okButton;
private JButton cancelButton;
--> private JLabel label;

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();

}

private void productionLogin()
{
this.setVisible(false);
ProductionFrame production = new ProductionFrame();
production.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
production.setLocation(450,350);
production.show();
}
private void venteLogin()
{
this.setVisible(false);
}
}









Si quelqu'un peut m'aider vraiment merci

3 réponses

Avatar
grillot sebastien
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
Avatar
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.

Avatar
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 :)