artistouclub
Messages postés4Date d'inscriptionvendredi 1 janvier 2010StatutMembreDernière intervention19 décembre 2011
-
1 févr. 2011 à 12:01
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023
-
3 févr. 2011 à 13:04
Bonjour a tous j ai realise une application selon le model MVC
dans la partie vue j ai mis un Menubar contenant des jmenu ensuite j ai lie chaque jmenu a sa propre classe(contenant une methode getpanel() ) pour l afficher ensuite dans la Fenetre a travers cette methode mon probleme c ke lors de l affichage de la classe CalculPanel j ai eu des problemes d affichage puisque j ai utilise des Jsplit est ce que kelkun peut m aider Svp
private void createMenu()
{
ActionsColors actions = new ActionsColors();
JMenuBar mBar = new JMenuBar();
setJMenuBar( mBar );
JMenu file = new JMenu( "File" );
mBar.add( file );
JMenuItem New = new JMenuItem( "New" );
New.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
conteneur.removeAll();
CalculPanel gp = new CalculPanel(size, model);
model.addObserver(gp);
conteneur.add(gp.getPanel(), BorderLayout.CENTER);
conteneur.revalidate();
initModel();
}
});
file.add( New );
JMenuItem save = new JMenuItem( "Save" );
file.add( save );
JMenuItem print = new JMenuItem( "Print" );
file.add( print );
JMenuItem exit = new JMenuItem( "Exit" );
exit.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
file.add( exit );
// creation des chex box
JMenu jm = new JMenu( "Options" );
mBar.add( jm );
JCheckBoxMenuItem chkItm = new JCheckBoxMenuItem( "Coords sur la souris" );
chkItm.setActionCommand( "onMouse" );
chkItm.addActionListener( actions );
chkItm.setSelected( pnlChart.isBubleOnMouse() );
jm.add( chkItm );
chkItm = new JCheckBoxMenuItem( "Affiche les coords" );
chkItm.setActionCommand( "coords" );
chkItm.addActionListener( actions );
chkItm.setSelected( pnlChart.isUseBuble() );
jm.add( chkItm );
chkItm = new JCheckBoxMenuItem( "Affiche les Points" );
chkItm.setActionCommand( "node" );
chkItm.addActionListener( actions );
chkItm.setSelected( pnlChart.isShowNode() );
jm.add( chkItm );
chkItm = new JCheckBoxMenuItem( "Affiche la croix" );
chkItm.setActionCommand( "cross" );
chkItm.addActionListener( actions );
chkItm.setSelected( pnlChart.isUseMouseCross() );
jm.add( chkItm );
chkItm = new JCheckBoxMenuItem( "Points sur courbe" );
chkItm.setActionCommand( "onLine" );
chkItm.addActionListener( actions );
chkItm.setSelected( pnlChart.isNodeOnLine() );
jm.add( chkItm );
// creation des menu items couleur
jm = new JMenu( "Couleurs" );
mBar.add( jm );
JMenuItem mit = new JMenuItem( "Courbe" );
mit.setActionCommand( "courbe" );
mit.addActionListener( actions );
jm.add( mit );
mit = new JMenuItem( "Coords" );
mit.setActionCommand( "coords" );
mit.addActionListener( actions );
jm.add( mit );
mit = new JMenuItem( "Points" );
mit.setActionCommand( "node" );
mit.addActionListener( actions );
jm.add( mit );
mit = new JMenuItem( "Axes" );
mit.setActionCommand( "axes" );
mit.addActionListener( actions );
jm.add( mit );
mit = new JMenuItem( "Croix" );
mit.setActionCommand( "cross" );
mit.addActionListener( actions );
jm.add( mit );
JMenu help = new JMenu( "Help" );
mBar.add( help );
JMenuItem aide = new JMenuItem( "Help ??" );
aide.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
ImageIcon img = new ImageIcon("Picture/Aebt.PNG");
JOptionPane.showMessageDialog(null,
"Créateur: Alaeddine Boubaker.\nEncadreur:Mister David Flinspach (Aebt)" +
".\nLicense: Freeware.\nCopyright: ala.boubaker@gmail.com",
"Information", JOptionPane.NO_OPTION,img);
}
});
help.add( aide );
JMenuItem about = new JMenuItem( "About" );
about.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null,
"Créateur: Alaeddine Boubaker.\nEncadreur:Mister David Flinspach (Aebt)" +
".\nLicense: Freeware.\nCopyright: ala.boubaker@gmail.com",
"Information", JOptionPane.NO_OPTION);
}
});
help.add( about );
}
class ActionsColors implements ActionListener
{
public void actionPerformed( ActionEvent e )
{
String action = e.getActionCommand();
if ( action.equals( "courbe" ) )
pnlChart.setColorLine( getColor( "de la courbe. ", pnlChart.getColorLine() ) );
else if ( action.equals( "coords" ) )
pnlChart.setColorText( getColor( "du text. ", pnlChart.getColorText() ) );
else if ( action.equals( "node" ) )
pnlChart.setColorNode( getColor( "des points. ", pnlChart.getColorNode() ) );
else if ( action.equals( "axes" ) )
pnlChart.setColorAxes( getColor( "des axes. ", pnlChart.getColorAxes() ) );
else if ( action.equals( "cross" ) )
pnlChart.setColorCross( getColor( "de la croix. ", pnlChart.getColorCross() ) );
public class CalculPanel extends ZContainer implements Observer{
private Dimension dimension = new Dimension();
private Control control;
DefaultTableModel tmn =null;
PnlChart pnlChart=new PnlChart();
//On déclare notre objet JTextPane
private JTextArea textPane = new JTextArea();
//L'objet qui va gérer le scroll
//En lui passant un objet JComponent dans le constructeur
private JScrollPane scroll = new JScrollPane(textPane);
public CalculPanel(Dimension dim, Observable mod) {
super(dim);
this.control = new Control(mod);
initPanel();
}
protected void initPanel() {
//On crée deux conteneurs de couleurs différentes
pan = new JPanel();
pan2 = new JPanel();
pan3 = new JPanel();
pan4 = new JPanel();
//λ
JPanel panλ = new JPanel();
panλ.setBackground(Color.white);
panλ.setPreferredSize(new Dimension(400, 70));
panλ.setBorder(BorderFactory.createTitledBorder("λ value"));
λa = new JTextField();
λa.setPreferredSize(new Dimension(100, 25));
ALabel = new JLabel("λa [1/h]");
λb = new JTextField();
λb.setPreferredSize(new Dimension(100, 25));
BLabel = new JLabel("λb [1/h]");
panλ.add(ALabel);
panλ.add(λa);
panλ.add(BLabel);
panλ.add(λb);
pan.add(panλ);
//DT
JPanel pandt = new JPanel();
pandt.setBackground(Color.white);
pandt.setPreferredSize(new Dimension(400, 70));
pandt.setBorder(BorderFactory.createTitledBorder(" DT value"));
DTA = new JTextField();
DTA.setPreferredSize(new Dimension(100, 25));
DTALabel= new JLabel("DTA [h]");
DTB = new JTextField();
DTB.setPreferredSize(new Dimension(100, 25));
DTBLabel = new JLabel("DTB [h]");
pandt.add(DTALabel);
pandt.add(DTA);
pandt.add(DTBLabel);
pandt.add(DTB);
pan.add(pandt);
//PORT
JPanel panport = new JPanel();
panport.setBackground(Color.white);
panport.setPreferredSize(new Dimension(400, 70));
panport.setBorder(BorderFactory.createTitledBorder("Port"));
THRS = new JTextField();
THRS.setPreferredSize(new Dimension(100, 25));
thrsLabel= new JLabel("THRS [1/h]");
port= new JComboBox();
port.addItem("AND");
port.addItem("OR");
portlabel=new JLabel("Port");
panport.add(portlabel);
panport.add(port);
panport.add(thrsLabel);
panport.add(THRS);
pan.add(panport);
//THR et λ
JPanel panThλ4 = new JPanel();
panThλ4.setBackground(Color.white);
panThλ4.setPreferredSize(new Dimension(400, 70));
panThλ4.setBorder(BorderFactory.createTitledBorder(" λS"));
λs = new JTextField();
λs.setPreferredSize(new Dimension(100, 25));
λsLabel = new JLabel("λs(max)");
QMAX = new JTextField();
QMAX.setPreferredSize(new Dimension(100, 25));
QmaxLabel= new JLabel("QMAX(S) [1]");
panThλ4.add(λsLabel);
panThλ4.add(λs);
panThλ4.add(QmaxLabel);
panThλ4.add(QMAX);
pan4.add(panThλ4);
//Q
JPanel panQ = new JPanel();
panQ.setBackground(Color.white);
panQ.setPreferredSize(new Dimension(400, 80));
panQ.setBorder(BorderFactory.createTitledBorder(" QMAX values"));
QA = new JTextField();
QA.setPreferredSize(new Dimension(100, 25));
QaLabel= new JLabel("QMAX(A) [1]");
QB = new JTextField();
QB.setPreferredSize(new Dimension(100, 25));
QbLabel = new JLabel("QMAX(B) [1]");
panQ.add(QaLabel);
panQ.add(QA);
panQ.add(QbLabel);
panQ.add(QB);
pan4.add(panQ);
//THR
JPanel panThr = new JPanel();
panThr.setBackground(Color.white);
panThr.setPreferredSize(new Dimension(400, 70));
panThr.setBorder(BorderFactory.createTitledBorder(" THR values"));
THRA = new JTextField();
THRA.setPreferredSize(new Dimension(100, 25));
thraLabel= new JLabel("THRA [1/h]");
THRB = new JTextField();
THRB.setPreferredSize(new Dimension(100, 25));
thrbLabel = new JLabel("THRB [1/h]");
panThr.add(thraLabel);
panThr.add(THRA);
panThr.add(thrbLabel);
panThr.add(THRB);
pan4.add(panThr);
// controlPan1
JPanel controlPan1 = new JPanel();
JButton calculBouton = new JButton("calcul λmax ");
calculBouton.addActionListener(new CalculListener());
JButton ThraBouton = new JButton("calcul THRA");
ThraBouton.addActionListener(new ThraListener ());
JButton ThrbBouton = new JButton("calcul THRB");
ThrbBouton.addActionListener(new ThrbListener ());
controlPan1.add(calculBouton);
controlPan1.add(ThraBouton);
controlPan1.add(ThrbBouton);
pan.add(controlPan1);
//On construit enfin notre séparateur
split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, pan, pan4);
//On place le séparateur
split.setDividerLocation(400);
split2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, pan3, pan2);
//On place le séparateur
split2.setDividerLocation(400);
//On passe les deux précédents JSplitPane à celui-ci
split3 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, split, split2);
//On place le séparateur
split3.setDividerLocation(270);
//On le passe ensuite au contentPane de notre objet Fenetre
//placé au centre pour qu'il utilise tout l'espace disponible
this.panel.add(split3,BorderLayout.CENTER);
}
public JSplitPane getSplit3() {
return split3;
}
class CalculListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(λa.getText()!=""&&λb.getText()!=""&&DTA.getText()!=""&&DTB.getText()!="")
control.control1(λa.getText(),λb.getText(),DTA.getText(),DTB.getText());
else
{
JOptionPane.showMessageDialog(null, "please check your input Value ", "Information", JOptionPane.NO_OPTION);
}
}
}
class ThraListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(λb.getText()!=""&&DTA.getText()!=""&&DTB.getText()!=""&&THRS.getText()!="")
control.control3(λb.getText(),DTA.getText(),DTB.getText(),THRS.getText());
else
{
JOptionPane.showMessageDialog(null, "please check your input Value ", "Information", JOptionPane.NO_OPTION);
}
}
}
class ThrbListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(λa.getText()!=""&&DTA.getText()!=""&&DTB.getText()!=""&&THRS.getText()!="")
control.control2(λa.getText(),DTA.getText(),DTB.getText(),THRS.getText());
else
{
JOptionPane.showMessageDialog(null, "please check your input Value ", "Information", JOptionPane.NO_OPTION);
}
}
}
public void update(String λsmax, String qsmax, String qamax, String qbmax,ArrayList <ObjectData> list,int l)
{
// TODO Auto-generated method stub
artistouclub
Messages postés4Date d'inscriptionvendredi 1 janvier 2010StatutMembreDernière intervention19 décembre 2011 1 févr. 2011 à 12:50
voici la partie de code la plus mechante
//On construit enfin notre séparateur
split = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, pan, pan4);
//On place le séparateur
split.setDividerLocation(400);
split2 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, pan3, pan2);
//On place le séparateur
split2.setDividerLocation(400);
//On passe les deux précédents JSplitPane à celui-ci
split3 = new JSplitPane(JSplitPane.VERTICAL_SPLIT, split, split2);
//On place le séparateur
split3.setDividerLocation(270);
//On le passe ensuite au contentPane de notre objet Fenetre
//placé au centre pour qu'il utilise tout l'espace disponible
this.panel.add(split3,BorderLayout.CENTER);
JMenuItem New = new JMenuItem( "New" );
New.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent arg0) {
conteneur.removeAll();
CalculPanel gp = new CalculPanel(size, model);
model.addObserver(gp);
conteneur.add(gp.getPanel(), BorderLayout.CENTER);
conteneur.revalidate();
initModel();
}
});
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 3 févr. 2011 à 13:04
Salut,
Je n'ai pas regarder le code du premier poste (pique trop les yeux) mais en fonction du 2ieme je me pose la question suivante :
Au lieu de supprimer les éléments de ton contentpane et en mettre des nouveaux, etc... pourquoi tu n'utiliserais par un CardLayout sur ce dernier et ensuite tu joues seulement sur qui tu veux afficher en fonction du bouton qui est cliqué ?
------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."