ajouter un JPanel dans un autre suite à un clic souris
Salut,
j'ai développé une application contenant un toolbar et des jpanel imbriqués.
lorsque j’appuie sur un bouton du toolbar, un jpanel s'affiche dans un autre.
le voilà mes classes:
la classe ToolBarPane:
Code:
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
| package com.jam.views;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Event;
import java.awt.FlowLayout;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Rectangle;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.jam.business.CallPanesService;
import com.jam.templates.BeanFactoryTemp;
import com.jam.templates.ItemPane;
import java.awt.ComponentOrientation;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.beans.EventHandler;
@SuppressWarnings("serial")
public class ToolBarPane extends JPanel{
private ItemPane openItem = null;
private ItemPane trsItem = null;
ContainerPane cp = new ContainerPane(983, 584);
public ToolBarPane(int w, int h){
setSize(w, h);
initialize();
}
/**
* This method initializes this
*
*/
private void initialize(){
setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
add(getOpenItem(), FlowLayout.LEFT);
}
/**
* This method initializes openItem
*
* @return javax.swing.JPanel
*/
public ItemPane getOpenItem() {
if (openItem == null) {
openItem = new ItemPane("assets/new.png", "Nouveau");
openItem.setName("openItem");
openItem.addMouseListener(cp);
}
return openItem;
}
/**
* This method initializes trsItem
*
* @return javax.swing.JPanel
*/
private ItemPane getTrsItem() {
if (trsItem == null) {
trsItem = new ItemPane("assets/budget.png","Encaissements" );
}
return trsItem;
} |
la classe ContainerPane : c'est là lorsque je clique sur un bouton du toolBarPane je veux insérer le jpanel correspond .
Code:
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 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127
| package com.jam.views;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GradientPaint;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Paint;
import java.awt.Rectangle;
import java.awt.RenderingHints;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JLabel;
import javax.swing.JPanel;
import com.jam.business.CallPanesService;
import com.jam.templates.BeanFactoryTemp;
import com.jam.templates.OvalPanel;
public class ContainerPane extends OvalPanel implements MouseListener{
private OvalPanel welcomePane = null;
private OvalPanel switchPane = null;
private JLabel welcomeLbl = null;
SyndicatManagerPane smp = new SyndicatManagerPane(this.getWidth(), this.getHeight());
public ContainerPane(){}
public ContainerPane(int w, int h) {
super(w, h);
//initialize();
}
public ContainerPane(int w, int h, Dimension d) {
super(w, h, d);
initialize();
}
/**
* This method initializes this
*
*/
private void initialize() {
setLayout(new BorderLayout());
add(getWelcomePane(), BorderLayout.NORTH);
add(getSwitchPane(), BorderLayout.CENTER);
}
/**
* This method initializes menuPane
*
* @return javax.swing.JPanel
*/
private JLabel getWelcomeLbl() {
if (welcomeLbl == null) {
welcomeLbl = new JLabel("Bienvenue au Syndicat ");
welcomeLbl.setFont(new Font("Calibri", Font.PLAIN, 13));
}
return welcomeLbl;
}
/**
* This method initializes menuPane
*
* @return javax.swing.JPanel
*/
public OvalPanel getSwitchPane() {
if (switchPane == null) {
switchPane = new OvalPanel(10, 10, new Dimension(this.getWidth(), this.getHeight()));
}
return switchPane;
}
/**
* This method initializes syndicatView
*
* @return javax.swing.JPanel
*/
public OvalPanel getWelcomePane() {
if (welcomePane == null) {
welcomePane = new OvalPanel(3, 3, new Dimension(this.getWidth(), 0));
welcomePane.add(getWelcomeLbl(), BorderLayout.CENTER);
}
return welcomePane;
}
@Override
public void mouseClicked(MouseEvent e) {
getSwitchPane().add(smp, BorderLayout.EAST);
System.out.println(e.getComponent().getName());
System.out.println("clicked!");
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
} |
Mais le switchPane(là où je veux insérer un autre panel) ne m'affiche rien.Je sais pas est ce que j'ai bien appliquer la bonne façon de gestion des évènements ou non?
merci d'avance