Bonjour,
Voila, j'aimerais trouver un moyen de maximiser la taille d'une JinternalFrame dans mon espace de travail.
Merci.
Bonjour,
Voila, j'aimerais trouver un moyen de maximiser la taille d'une JinternalFrame dans mon espace de travail.
Merci.
ok, bon le code est crade mais je fais mes essais :
Ca c'est une fenetre de d'identification (l'appelante):
et ca l'appelée :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 public class FConnection extends JInternalFrame implements ActionListener { JPanel jPanel1 = new JPanel(); JPasswordField JPFPassword = new JPasswordField(); XYLayout xYLayout1 = new XYLayout(); JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); JTextField JTFLogin = new JTextField(); JButton jBConnection = new JButton(); JButton jBAnnuler = new JButton(); static final int xOffset = 30, yOffset = 30; public static Personne moi; public FConnection() { super("Connection à mon agenda", true, //resizable true, //closable true, //maximizable true); //iconifiable this.setSize(315, 185); try { setDefaultCloseOperation(DISPOSE_ON_CLOSE); jbInit(); } catch (Exception exception) { exception.printStackTrace(); } } private void jbInit() throws Exception { jPanel1.setLayout(xYLayout1); JPFPassword.setText(""); jLabel1.setText("Password"); jLabel2.setText("Login : "); xYLayout1.setHeight(146); JTFLogin.setText(""); jBConnection.setText("Connection"); jBConnection.addActionListener(this); jBAnnuler.setText("Annuler"); jBAnnuler.addActionListener(this); jPanel1.add(jLabel2, new XYConstraints(35, 30, 112, 24)); jPanel1.add(JTFLogin, new XYConstraints(161, 28, 113, 24)); jPanel1.add(jLabel1, new XYConstraints(33, 63, 100, 31)); jPanel1.add(JPFPassword, new XYConstraints(161, 66, 112, -1)); jPanel1.add(jBConnection, new XYConstraints(51, 110, 87, 25)); jPanel1.add(jBAnnuler, new XYConstraints(177, 109, 87, 24)); this.getContentPane().add(jPanel1); } public void actionPerformed(ActionEvent actionEvent) { if (actionEvent.getSource() == jBAnnuler) { dispose(); } if (actionEvent.getSource() == jBConnection) { Personne laPersonne = new Personne(); try { moi = laPersonne.seConnecter(JTFLogin.getText(), JPFPassword.getText()); } catch (SQLException ex) { } catch (ClassNotFoundException ex) { } if (moi == null) { JOptionPane.showMessageDialog(null, "Votre login/mot de passe n'a pas était reconnu !"); } else { JInternalFrame info = new JFessai(); try { info.setMaximum(true); info.setSelected(true); this.dispose(); } catch (java.beans.PropertyVetoException e) {} info.setVisible(true); //necessary as of 1.3 Start.desktop.add(info); System.out.println("c'est ok"); } } } }
l'erreur est levée ici info.setMaximum(true);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 public class JFessai extends JInternalFrame { public JFessai() { super("Connection à mon agenda", true, //resizable true, //closable true, //maximizable true); //iconifiable try { setDefaultCloseOperation(DISPOSE_ON_CLOSE); } catch (Exception exception) { exception.printStackTrace(); } JIFAccueil monSplit = new JIFAccueil(); this.getContentPane().add(monSplit.getSplitPane()); try { jbInit(); } catch (Exception ex) { ex.printStackTrace(); } } private void jbInit() throws Exception { this.setTitle("Votre espace de travail"); this.getContentPane().setBackground(Color.white); // java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit(). // getScreenSize(); // this.setSize(screenSize); } }
Je suis pas un super pro donc ton erreure ne m'a pas suaté au yeux mais ce qui est sure c'est que le problème viens de ton objet info qui est genre mal contruit.
Est ce qeue t'es dans un ide? Si oui débug voir ce qu'il se passe dans ta classe JFessai.
En faisant un debug, il se trouve que l'erreur est levée dans
class EventDispatchThread extends Thread du package AWT.
au niveau d'une fonction synchronized
Bon, mes connaissances en java ne permetternt pas de depister ce genre d'erreur
Ce que je veux dire c'est que quand tu débug, au niveau de quand tu crées info, le debuger t'envoie dans la classe JFessai.
C'est là qu'il faut que tu vois étapes par étapes si tout se passe bien.
Si tout se passe bien (avec le debugger tu retourne tranquile dans FConnection) alors là je capte pas.
Si il va pas au bout vois ou il est arreté.
Enfin c'est ce que à mon niveau je ferais!...
YAnn
il retourne effectivement ds FConnection et plante au
Le debug m'envoie ds la classe EventDispatchThread est plante ds cette classe...
Code : Sélectionner tout - Visualiser dans une fenêtre à part info.setMaximum(true);
En fait ce qui ce passe c'est que ton InternalFrame essais d'obtenir la taille de son conteneur pour calculer la taille qu'elle doit prendre. Comme quand tu l'appeles elle n'en a pas encore, le conteneur est null.
Pour résoudre se pb, il suffit d'ajouter d'abord ton Interframe à sa destionation, puis de faire le setMaximuSize() aprés. Ton code devient :
Voilà
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 //... else { JInternalFrame info = new JFessai(); //On ajoute à la destination Start.desktop.add(info); //Puis on donne la taille maximale try { info.setMaximum(true); info.setSelected(true); this.dispose(); } catch (java.beans.PropertyVetoException e) {} info.setVisible(true); //necessary as of 1.3 System.out.println("c'est ok"); } //...
Partager