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

  FORUM HardWare.fr
  Programmation
  Java

  Ajouter, éditer et retirer des objets d'une JList

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ajouter, éditer et retirer des objets d'une JList

n°167429
Cherrytree
cn=?
Posté le 27-06-2002 à 16:27:15  profilanswer
 

J'y arrive presque, mais je ne suis pas satisfait du résultat. C'est limite crados et un rustine. Quelqu'un aurait un exemple d'une appli de ce type sous la main.
 
J'ai trouvé sur le net pas mal d'apps du style, sauf que le problème est souvent biaisé par l'introduction par défaut d'objets dans la JList, ou par le fait que les objets ajoutés sont de bêtes Strings.


---------------
Le site de ma maman
mood
Publicité
Posté le 27-06-2002 à 16:27:15  profilanswer
 

n°167442
veryfree
Posté le 27-06-2002 à 16:32:38  profilanswer
 

Cherrytree a écrit a écrit :

J'y arrive presque, mais je ne suis pas satisfait du résultat. C'est limite crados et un rustine. Quelqu'un aurait un exemple d'une appli de ce type sous la main.
 
J'ai trouvé sur le net pas mal d'apps du style, sauf que le problème est souvent biaisé par l'introduction par défaut d'objets dans la JList, ou par le fait que les objets ajoutés sont de bêtes Strings.




 

Code :
  1. listModel = new DefaultListModel();
  2. list = new JList(listModel);
  3. ....
  4. listModel.addElement("donald" );
  5. listModel.removeElement("coincoin" );


 
 
voila

n°167444
veryfree
Posté le 27-06-2002 à 16:34:07  profilanswer
 

pour editer j ai jamais fait  
juste pour un combobox
 
jvai voir si ca se trouve ca marche pareil...


Message édité par veryfree le 27-06-2002 à 16:34:19
n°167452
Cherrytree
cn=?
Posté le 27-06-2002 à 16:40:24  profilanswer
 

Mon problème se situe surtout autour de la méthode valueChanged, je ne sais pas quand elle est déclenchée précisément. Faut que je cherche ça, en fait.


---------------
Le site de ma maman
n°167455
Cherrytree
cn=?
Posté le 27-06-2002 à 16:41:24  profilanswer
 

Voilà mon code. Je le trouve pas top.
 

Code :
  1. import java.awt.*;
  2. import java.awt.event.*;
  3. import javax.swing.*;
  4. import javax.swing.event.*;
  5. public class SchedulerPane extends JPanel implements ListSelectionListener {
  6. private JList list;
  7. private DefaultListModel listModel;
  8. private JButton addButton;
  9. private JButton modifyButton;
  10. private JButton removeButton;
  11. private JTextField periodInput;
  12. private JTextField executionTimeInput;
  13. private JTextField remoteExecutionTimeInput;
  14. private JTextField remoteCommunicationTimeInput;
  15. private JTextField migrationTimeInput;
  16. private JTextField delayInput;
  17. public SchedulerPane() {
  18.  listModel = new DefaultListModel();
  19.  list = new JList(listModel);
  20.  list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  21.  list.setSelectedIndex(0);
  22.  list.addListSelectionListener(this);
  23.  JScrollPane listScrollPane = new JScrollPane(list);
  24.  addButton = new JButton("Add" );
  25.  addButton.addActionListener(new AddListener());
  26.  modifyButton = new JButton("Modify" );
  27.  modifyButton.addActionListener(new ModifyListener());
  28.  removeButton = new JButton("Remove" );
  29.  removeButton.addActionListener(new RemoveListener());
  30.  JPanel eastPane = new JPanel(new GridLayout(0,1));
  31.  eastPane.add(addButton);
  32.  eastPane.add(modifyButton);
  33.  eastPane.add(removeButton);
  34.  periodInput = new JTextField(8);
  35.  executionTimeInput = new JTextField(8);
  36.  remoteExecutionTimeInput = new JTextField(8);
  37.  remoteCommunicationTimeInput = new JTextField(8);
  38.  migrationTimeInput = new JTextField(8);
  39.  delayInput = new JTextField(8);
  40.  JLabel periodLabel = new JLabel("Period : ", JLabel.RIGHT);
  41.  JLabel executionTimeLabel = new JLabel("Execution Time : ", JLabel.RIGHT);
  42.  JLabel remoteExecutionTimeLabel = new JLabel("Remote Execution Time : ", JLabel.RIGHT);
  43.  JLabel remoteCommunicationTimeLabel = new JLabel("Remote Communication Time : ", JLabel.RIGHT);
  44.  JLabel migrationTimeLabel = new JLabel("Migration Time : ", JLabel.RIGHT);
  45.  JLabel delayLabel = new JLabel("Delay : ", JLabel.RIGHT);
  46.  periodLabel.setPreferredSize(remoteCommunicationTimeLabel.getPreferredSize());
  47.  executionTimeLabel.setPreferredSize(remoteCommunicationTimeLabel.getPreferredSize());
  48.  remoteExecutionTimeLabel.setPreferredSize(remoteCommunicationTimeLabel.getPreferredSize());
  49.  migrationTimeLabel.setPreferredSize(remoteCommunicationTimeLabel.getPreferredSize());
  50.  delayLabel.setPreferredSize(remoteCommunicationTimeLabel.getPreferredSize());
  51.  Box periodBox = Box.createHorizontalBox();
  52.  periodBox.add(periodLabel);
  53.  periodBox.add(periodInput);
  54.  Box executionTimeBox = Box.createHorizontalBox();
  55.  executionTimeBox.add(executionTimeLabel);
  56.  executionTimeBox.add(executionTimeInput);
  57.  Box remoteExecutionTimeBox = Box.createHorizontalBox();
  58.  remoteExecutionTimeBox.add(remoteExecutionTimeLabel);
  59.  remoteExecutionTimeBox.add(remoteExecutionTimeInput);
  60.  Box remoteCommunicationTimeBox = Box.createHorizontalBox();
  61.  remoteCommunicationTimeBox.add(remoteCommunicationTimeLabel);
  62.  remoteCommunicationTimeBox.add(remoteCommunicationTimeInput);
  63.  Box migrationTimeBox = Box.createHorizontalBox();
  64.  migrationTimeBox.add(migrationTimeLabel);
  65.  migrationTimeBox.add(migrationTimeInput);
  66.  Box delayBox = Box.createHorizontalBox();
  67.  delayBox.add(delayLabel);
  68.  delayBox.add(delayInput);
  69.  Box southBox = Box.createVerticalBox();
  70.  southBox.add(periodBox);
  71.  southBox.add(executionTimeBox);
  72.  southBox.add(remoteExecutionTimeBox);
  73.  southBox.add(remoteCommunicationTimeBox);
  74.  southBox.add(migrationTimeBox);
  75.  southBox.add(delayBox);
  76.  setLayout(new BorderLayout());
  77.  add(listScrollPane, BorderLayout.CENTER);
  78.  add(eastPane, BorderLayout.EAST);
  79.  add(southBox, BorderLayout.SOUTH);
  80.  modifyButton.setEnabled(false);
  81.  removeButton.setEnabled(false);
  82. }
  83. class RemoveListener implements ActionListener {
  84.  public void actionPerformed(ActionEvent event) {
  85.   int index = list.getSelectedIndex();
  86.   listModel.removeElementAt(index);
  87.   int size = listModel.getSize();
  88.   if(size == 0) {
  89.    removeButton.setEnabled(false);
  90.    modifyButton.setEnabled(false);
  91.   } else {
  92.    if(index == size)
  93.     index--;
  94.    list.setSelectedIndex(index);
  95.   }
  96.  }
  97. }
  98. class ModifyListener implements ActionListener {
  99.  public void actionPerformed(ActionEvent event) {
  100.   if(periodInput.getText().equals("" ) || executionTimeInput.getText().equals("" )) {
  101.    Toolkit.getDefaultToolkit().beep();
  102.    return;
  103.   }
  104.   int index = list.getSelectedIndex();
  105.   listModel.removeElementAt(index);
  106.   Task task = createTask();
  107.   listModel.insertElementAt(task, index);
  108.   list.setSelectedIndex(index);
  109.  }
  110. }
  111. class AddListener implements ActionListener {
  112.  public void actionPerformed(ActionEvent event) {
  113.   if(periodInput.getText().equals("" ) || executionTimeInput.getText().equals("" )) {
  114.    Toolkit.getDefaultToolkit().beep();
  115.    return;
  116.   }
  117.   Task task = createTask();
  118.   listModel.addElement(task);
  119.   list.setSelectedIndex(listModel.getSize() - 1);
  120.   modifyButton.setEnabled(true);
  121.   removeButton.setEnabled(true);
  122.  }
  123. }
  124. public void valueChanged(ListSelectionEvent e) {
  125.  if(e.getValueIsAdjusting() == false) {
  126.   if (list.getSelectedIndex() == -1) {
  127.    modifyButton.setEnabled(false);
  128.    removeButton.setEnabled(false);
  129.    periodInput.setText("" );
  130.    executionTimeInput.setText("" );
  131.    remoteExecutionTimeInput.setText("" );
  132.    remoteCommunicationTimeInput.setText("" );
  133.    migrationTimeInput.setText("" );
  134.    delayInput.setText("" );
  135.   } else {
  136.    modifyButton.setEnabled(true);
  137.    removeButton.setEnabled(true);
  138.    Task task = (Task)list.getSelectedValue();
  139.    periodInput.setText(String.valueOf(task.getPeriod()));
  140.    executionTimeInput.setText(String.valueOf(task.getExecutionTime()));
  141.    remoteExecutionTimeInput.setText(String.valueOf(task.getRemoteExecutionTime()));
  142.    remoteCommunicationTimeInput.setText(String.valueOf(task.getRemoteCommunicationTime()));
  143.    migrationTimeInput.setText(String.valueOf(task.getMigrationTime()));
  144.    delayInput.setText(String.valueOf(task.getDelay()));
  145.   }
  146.  }
  147. }
  148. public Task createTask() {
  149.  int period = Integer.parseInt(periodInput.getText());
  150.  int executionTime = Integer.parseInt(executionTimeInput.getText());
  151.  int remoteExecutionTime;
  152.  try {
  153.   remoteExecutionTime = Integer.parseInt(remoteExecutionTimeInput.getText());
  154.  } catch(NumberFormatException e) {
  155.   remoteExecutionTime = 0;
  156.  }
  157.  int remoteCommunicationTime;
  158.  try {
  159.   remoteCommunicationTime = Integer.parseInt(remoteCommunicationTimeInput.getText());
  160.  } catch(NumberFormatException e) {
  161.   remoteCommunicationTime = 0;
  162.  }
  163.  int migrationTime;
  164.  try {
  165.   migrationTime = Integer.parseInt(migrationTimeInput.getText());
  166.  } catch(NumberFormatException e) {
  167.   migrationTime = 0;
  168.  }
  169.  int delay;
  170.  try {
  171.   delay = Integer.parseInt(delayInput.getText());
  172.  } catch(NumberFormatException e) {
  173.   delay = 0;
  174.  }
  175.  return new Task(period, executionTime, remoteExecutionTime, remoteCommunicationTime, migrationTime, delay);
  176. }
  177. }


---------------
Le site de ma maman
n°169424
bobuse
Posté le 02-07-2002 à 09:25:37  profilanswer
 

allez, à moi, au cas où ça vous interresserait ...
 
 

Code :
  1. import javax.swing.*;
  2. import javax.swing.event.*;
  3. import java.awt.event.*;
  4. import java.awt.*;
  5. public class RelationPanel extends JPanel implements ActionListener ,ListSelectionListener {
  6.     private JList listeRel;
  7.     private DefaultListModel listeRelModel;
  8.     private JButton badd;
  9.     private JButton bedit;
  10.     private JButton bdel;
  11.     private boolean editable;
  12.     public RelationPanel(boolean editable) {
  13.         super(new GridBagLayout());
  14.         GridBagLayout gb=(GridBagLayout)this.getLayout();
  15.         GridBagConstraints gbc=new GridBagConstraints();
  16.         this.editable=editable;
  17.         this.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(),"Relations" ));
  18.         listeRelModel = new DefaultListModel();
  19. //remplissage ...
  20.         listeRelModel.addElement(...);
  21.        
  22.         listeRel=new JList(listeRelModel);
  23.         listeRel.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
  24.         //Panel des relations::positionnement de la liste
  25.         JScrollPane listeScrollPane = new JScrollPane(listeRel);
  26.         BatSim.insertInGridBag(listeScrollPane,gb,gbc,this,0,0,1,5,GridBagConstraints.WEST,5,5,5,5);
  27.         if (editable) {
  28.             listeRel.addListSelectionListener(this);
  29.             //Panel des relations::boutons
  30.             badd=new JButton("Ajouter" );
  31.             badd.setActionCommand("add" );
  32.             badd.addActionListener(this);
  33.             bedit=new JButton("Editer" );
  34.             bedit.setActionCommand("edit" );
  35.             bedit.addActionListener(this);
  36.             bedit.setEnabled(false);
  37.             bdel=new JButton("Supprimer" );
  38.             bdel.setActionCommand("del" );
  39.             bdel.addActionListener(this);
  40.             bdel.setEnabled(false);
  41.             BatSim.insertInGridBag(badd,gb,gbc,this,1,1,1,1,GridBagConstraints.WEST,5,5,5,5);
  42.             BatSim.insertInGridBag(bedit,gb,gbc,this,1,2,1,1,GridBagConstraints.WEST,5,5,5,5);
  43.             BatSim.insertInGridBag(bdel,gb,gbc,this,1,4,1,1,GridBagConstraints.WEST,5,5,5,5);
  44.         }
  45.     }
  46.     public void actionPerformed(ActionEvent e) {
  47.         if (e.getActionCommand().equals("add" )) {
  48.             //ouverture d'un boîte de dialogue pour ajouter unn élément
  49.             SaisieRelationDialog srd=new SaisieRelationDialog((JDialog)this.getFocusCycleRootAncestor(),this.listeRel,this.listeRelModel,null);
  50.         } else if (e.getActionCommand().equals("edit" )) {
  51.             //ouverture d'un boîte de dialogue pour ajouter unn élément
  52.             SaisieRelationDialog srd=new SaisieRelationDialog((JDialog)this.getFocusCycleRootAncestor(),this.listeRel,this.listeRelModel,(Relation)listeRelModel.elementAt(listeRel.getSelectedIndex()));
  53.         } else if (e.getActionCommand().equals("del" )) {
  54.             int index = listeRel.getSelectedIndex();
  55.             if (index!=-1) {
  56.                 listeRelModel.remove(index);
  57.                 int size = listeRelModel.getSize();
  58.                 if (size == 0) {
  59.                     //liste vide
  60.                     bedit.setEnabled(false);
  61.                     bdel.setEnabled(false);
  62.                 } else {
  63.                     //ajustement du focus
  64.                     if (index == listeRelModel.getSize())
  65.                         index--;
  66.                     listeRel.setSelectedIndex(index);
  67.                 }
  68.             }
  69.         }
  70.     }
  71.     public void valueChanged(ListSelectionEvent e) {
  72.         if (e.getValueIsAdjusting() == false) {
  73.             if (listeRel.getSelectedIndex() == -1) {
  74.                 bedit.setEnabled(false);
  75.                 bdel.setEnabled(false);
  76.             } else {
  77.                 bedit.setEnabled(true);
  78.                 bdel.setEnabled(true);
  79.             }
  80.         }
  81.     }
  82. }


Message édité par bobuse le 02-07-2002 à 09:27:57
n°174332
Cherrytree
cn=?
Posté le 10-07-2002 à 14:23:19  profilanswer
 

Je vais regarder ça avec le plus vibrant intérêt.


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

  Ajouter, éditer et retirer des objets d'une JList

 

Sujets relatifs
[Javascript] Ajouter une valeur à un champ sans supprimer l'existant ![VB6] ListView : ajouter des elements dans les SubItems
Fichier Batch : ajouter des paramètres spécifique au programme[PHP] et les objets liste de dreamweaver
Bouton ajouter (enregistrement de valeur dans une table)[Shell] Retirer les retour à la ligne d'un fichier (avec sed ?)
[Interbase] Ajouter un champ sans devoir tout recommencerEditer du JSP
Comment retirer le soulignement des liens en HTML ?[php] click qui ne veut pas s'ajouter :/
Plus de sujets relatifs à : Ajouter, éditer et retirer des objets d'une JList


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