Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1288 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  comment utiliser JSplitPane

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

comment utiliser JSplitPane

n°1717328
vedoca
Posté le 14-04-2008 à 16:24:43  profilanswer
 

bonjour tous ,
 
encore j'ai un problème au niveau de class ecouteur je vous explique , j'ai utiliser un JSplitPane qui me permet de couper la zone du travail en deux j'ai mis un bouton dans la partis gauche et j'ai lui associé une class ecouteur qui me permet d'afficher une image dans la partis droite de JSplitPane mais sa marche pas je ne comprend rien :pt1cable:  
 
voila la classe principale
 
 
import java.awt.*;
import javax.swing.*;
import java.io.*;
import java.text.*;
import java.util.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
 
import java.awt.*;
import java.awt.geom.Rectangle2D;
 
import javax.swing.*;
 
 
 
 
 
public class Interface extends JFrame  {
 
 private static final long serialVersionUID = 1L;
 
 private JPanel jContentPane = null;
 
 
 
 private JSplitPane jSplitPane = null;
 
 
 
 private JCheckBox jCheckBox = null;
 
 private JCheckBox jCheckBox1 = null;
 
 private JButton jButton = null;
 
 
 
 
 private JPanel jPanel = null;
 
 private JPanel jPanel1 = null;
 
 private JPanel jPanel2 = null;
 
 private JPanel jPanel3 = null;
 
 private JPanel jPanel4 = null;
 
 private JPanel jPanel5 = null;
 
 private JPanel jPanel6 = null;
 
 private JPanel jPanel7 = null;
 
 private JPanel jPanel8 = null;
 
 private JPanel jPanel9 = null;
 
 private JPanel jPanelModele = null;
 
 private JScrollPane dd = null;
 
 
 
 
 
 
/**
  * This method initializes jButton  
  *  
  * @return javax.swing.JButton  
  */
  private JPanel getJPanel7() {
  if (jPanel7 == null) {
   jPanel7 = new JPanel();
   jPanel7.setLayout(new BorderLayout());
   
   
   jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.SoftBevelBorder.LOWERED), "le graphe ", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("DialogInput", java.awt.Font.PLAIN, 12), java.awt.SystemColor.activeCaption));
   
  }
  return jPanel7;
 }
 
 
 
 /**
  * This method initializes jPanel  
  *  
  * @return javax.swing.JPanel  
  */
 private JPanel getJPanel1() {
  if (jPanel1 == null) {
   GridLayout gridLayout = new GridLayout();
   gridLayout.setRows(2);
   gridLayout.setColumns(1);
   jPanel1 = new JPanel();
   jPanel1.setPreferredSize(new Dimension(400, 600));
   jPanel1.setLayout(gridLayout);
   jPanel1.add(getJPanelModele(), null);
   jPanel1.add(getJPanel2(), null);
  }
  return jPanel1;
 }
 
 private JPanel getJPanelModele() {
  if (jPanelModele == null) {
   jPanelModele = new JPanel();
   jPanelModele.setLayout(null);
   jPanelModele.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.SoftBevelBorder.LOWERED), "Modele  ", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("DialogInput", java.awt.Font.ITALIC, 12), java.awt.SystemColor.activeCaption));
   /*jPanelModele.add(getJScrollPane());*/
   jPanelModele.setVisible(true);
  }
  return jPanelModele;
 }
 
 
 
 
 
 /**
  * This method initializes jPanel2  
  *  
  * @return javax.swing.JPanel  
  */
 private JPanel getJPanel2() {
  if (jPanel2 == null) {
   GridLayout gridLayout1 = new GridLayout();
   gridLayout1.setRows(2);
   gridLayout1.setColumns(1);
   jPanel2 = new JPanel();
   jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.SoftBevelBorder.LOWERED), "génerer le graphe", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("DialogInput", java.awt.Font.PLAIN, 12), java.awt.SystemColor.activeCaption));
   jPanel2.setVisible(true);
   jPanel2.setLayout(gridLayout1);
   jPanel2.add(getJPanel3(), null);
   /*jPanel2.add(getJPanel4(), null);*/
   /*jPanel2.add(getJPanel5(), null);*/
   
  }
  return jPanel2;
 }
 
 
 private JPanel getJPanel3() {
  if (jPanel3 == null) {
   
   jPanel3 = new JPanel();
   jPanel3.setLayout(null);
   jPanel3.add(getJButton(), null);
 
   }
 return jPanel3;
}
       
 private JButton getJButton() {
  if (jButton == null) {
   jButton = new JButton();
   jButton.setBounds(new Rectangle(80, 40, 221, 36));
   jButton.setText("génerer le graphe" );
   jButton.addActionListener(new EcoutBotton(this,jPanel7));
 
  }
  return jButton;
 }
 
 /**
  * This method initializes jSplitPane  
  *  
  * @return javax.swing.JSplitPane  
  */
 private JSplitPane getJSplitPane() {
  if (jSplitPane == null) {
   jSplitPane = new JSplitPane();
   jSplitPane.setLeftComponent(getJPanel1());
   jSplitPane.setRightComponent(getJPanel7());
  }
  return jSplitPane;
 }
 
 
          /*******************la classe ***********************/
          /**********************main*************************/
           
           
           
 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Raccord de méthode auto-généré
  SwingUtilities.invokeLater(new Runnable() {
   public void run() {
    Interface thisClass = new Interface();
    thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    thisClass.setVisible(true);
   }
  });
 }
 
 /**
  * This is the default constructor
  */
 public Interface() {
  super();
  initialize();
 }
 
 /**
  * This method initializes this
  *  
  * @return void
  */
 private void initialize() {
  this.setSize(780, 700);
  this.setContentPane(getJContentPane());
  this.setTitle("Géneration des scénarios d'attaque" );
 }
 
 
 
 
 
 /**
  * This method initializes jContentPane
  *  
  * @return javax.swing.JPanel
  */
 private JPanel getJContentPane() {
  if (jContentPane == null) {
   jContentPane = new JPanel();
   jContentPane.setLayout(new BorderLayout());          
   
   jContentPane.add( getJSplitPane(), BorderLayout.CENTER);
   
  }
   
  return jContentPane;
 }
 
}
 
 voila la class ecouteur associer au bouton
 
 
 
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
 
class EcoutBotton implements ActionListener
{
 JButton invite;
 JPanel contenu;
 JScrollPane dd;
 Interface ve;
 
 public EcoutBotton(Interface ve,JPanel contenu)
 {  
  this.contenu =contenu;
  this.ve = ve;
 }
 
 public void actionPerformed(ActionEvent e)
 {    
  ImageIcon ii = new ImageIcon("images.jpg" );
   
  dd = new JScrollPane(new JLabel(ii));
   
  dd.setBounds(20,20,350,250);
  contenu.add(dd);
  dd.revalidate();
   
}
 
}  
 
 
 
merci          
 

mood
Publicité
Posté le 14-04-2008 à 16:24:43  profilanswer
 

n°1717538
Bidem
Posté le 15-04-2008 à 09:05:58  profilanswer
 

Citation :

ça ne marche pas je ne comprend rien
...
merci


 
"ça ne marche pas" ne nous permet pas de comprendre ton problème.
(tu as une erreur de compil ? une exception ? un message d'erreur)
 
Explique nous le comportement attendu, ce qui se passe vraiment.
Ensuite isole le problème et montres nous les quelques lignes de code qui semblent être à l'origine.
 
http://forum.hardware.fr/hfr/Progr [...] 0261_1.htm

n°1717849
vedoca
Posté le 15-04-2008 à 14:51:38  profilanswer
 

merci bidem de me faire cette remarque je la trouve intéressante, :jap:  
je vous explique mon problème
 
je compile ma class "EcoutBotton"  pas d'erreurs ,je compile  class "Interface"  (principale)  pas d'erreurs , j'exécute l'interface s'affiche sans aucun problème, là quand je clic sur le bouton rien n'apparait.
 
******voila le bouton à qui j'associe class EcoutBotton  ****  
 
private JButton getJButton() {
  if (jButton == null) {
   jButton = new JButton();
   jButton.setBounds(new Rectangle(80, 40, 221, 36));
   jButton.setText("génerer le graphe" );
   jButton.addActionListener(new EcoutBotton(this,jPanel7));
 
  }
  return jButton;
 }  
 
 
 
*********voila le JSplitPane associer à l'interface**********
 
 
/**
  * This method initializes jSplitPane  
  *  
  * @return javax.swing.JSplitPane  
  */
 private JSplitPane getJSplitPane() {
  if (jSplitPane == null) {
   jSplitPane = new JSplitPane();
   jSplitPane.setLeftComponent(getJPanel1());
   jSplitPane.setRightComponent(getJPanel7());
  }
  return jSplitPane;
 }  
 
 
 
*************voila la class EcoutBotton****************
 
 
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
 
class EcoutBotton implements ActionListener
{
 JButton invite;
 JPanel contenu;
 JScrollPane dd;
 Interface ve;
 
 public EcoutBotton(Interface ve,JPanel contenu)
 {  
  this.contenu =contenu;
  this.ve = ve;
 }
 
 public void actionPerformed(ActionEvent e)
 {    
  ImageIcon ii = new ImageIcon("images.jpg" );
   
  dd = new JScrollPane(new JLabel(ii));
   
  dd.setBounds(20,20,350,250);
  contenu.add(dd);
  dd.revalidate();
   
}
 
}  
 
 
merci ,j'espère c'est clair cette fois.

n°1717866
ynorsa
Posté le 15-04-2008 à 15:07:48  profilanswer
 

vedoca a écrit :


 public EcoutBotton(Interface ve,JPanel contenu)


 
 [:delarue5]  
Manquerait pas une virgule ?

n°1717939
Bidem
Posté le 15-04-2008 à 16:07:09  profilanswer
 

quand je lance ton code, j'ai droit à une belle NullPointerException quand je clic sur le bouton.

 
Citation :

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
 at test.testinterface.EcoutBotton.actionPerformed(EcoutBotton.java:23)
 at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
...

 

Pour la simple et bonne raison que contenu est null.

 

c'est initialisé lors de l'appel du constructeur "new EcoutBotton(this, jPanel7)"

 

Le problème est que quand tu appelle ça, jPanel7 n'est pas encode initialisé

 

=> l'origine de tout, c'est la méthode getJSplitPane()

Code :
  1. private JSplitPane getJSplitPane() {
  2.   if (jSplitPane == null) {
  3.    jSplitPane = new JSplitPane();
  4.    // init de la partie gauche
  5.    // C'est pendant cette init qu'on initie le bouton et qu'on lui passe en parametre la partie droire (jPanel7)
  6.    jSplitPane.setLeftComponent(getJPanel1());
  7.    // init de la partie droite avec jPanel7 => ci dessous jPanel7 était null pendant l'init du bouton
  8.    jSplitPane.setRightComponent(getJPanel7());
  9.   }
  10.   return jSplitPane;
  11. }
 

Pour corriger le tout il suffi d'inverser les 2 lignes qui posent pb


Message édité par Bidem le 15-04-2008 à 16:07:31
n°1718446
vedoca
Posté le 16-04-2008 à 12:17:03  profilanswer
 

bonjour bidem,
 
 
merci beaucoup bidem vous m'avez donnez un coup de main qui ma permet d'avancer en une fraction de second  
 
je sens  votre intelligence et votre bon intuition dans votre réponse,  encore merci  :jap:  :jap:  :jap:  :jap:  :jap:  :jap:  :jap:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  comment utiliser JSplitPane

 

Sujets relatifs
Utiliser une fonction du shell dans un programme CCode:blocks : comment utiliser des .obj?
[SGBD/SQL] Utiliser un index ? Quand ? Comment ?Utiliser Symfony chez 1and1
Utiliser une Calculatrice dans mon appli WinformAligner des inputs et leurs légendes : utiliser meme hauteur de ligne
Utiliser une RichTextBox dans Access 2003utiliser des programmes en C sous Matlab
dév. une application d'animation de texte: quel langage utiliser?Utiliser des Newsletter ?
Plus de sujets relatifs à : comment utiliser JSplitPane


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR