× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 probleme avec des tableChanged en java
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
fourbiche
  Posté le 22/08/2005 @ 15:23 
Aller en bas de la page 
Nouvel astucien
Bonjour a tous ! voila je suis en trein d'essayer de realiser une petite application en java dans laquelle je me sert de TableModel. j'ai ajouter un listener sur ce TableModel, mais la partie de code qui est sensée s'executer au changement de valeur, c'est a dire la methode public void tableChanged(TableModelEvent e){} s'execute plusieur fois, je n'arrive pas a executer seulement une fois le code !!! package encaissement; import java.util.Locale; import java.text.DateFormat; import java.awt.GridLayout ; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.awt.Point; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.Vector; import javax.swing.DefaultCellEditor; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JInternalFrame; import javax.swing.JLabel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.SpringLayout; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; import javax.swing.table.TableModel; import parametrage.ParamCaisse; import parametrage.ParamCatProd; import produits.Produit; public class FenEncaiss extends JInternalFrame implements ActionListener, TableModelListener, KeyListener { private Container pane ; private String[] TabPays = {"France","Allemagne","Angleterre","Autriche","Belgique","Bulgarie","Cicile","Espagne","Grece","Hollande","Irland","Italie","Portugal","Suisse","Etats-Unis"} ; private String[] TabModes = {"CB", "CHEQUE", "ESPECE", "Abonnement"} ; private JTextField Jtcp, Jtclient, Jtadr, Jtville, Jtmodes ; private JLabel La1, La2, La3, La4, La5, La6, La7, La8, La9, La10, La11, La12, La13, La14, La15, La16, La17 ; private JTable TableauProduits ; private int test = 0 , cptbillet = 0; private JButton Jb1, Jb2, Jb3, Jbtest ; private JComboBox ListePays ; private JComboBox ListeModes ; //private String[][] tabbillet ; //private Object[] tabinfos ; private Vector tabinfos = new Vector() ; public FenEncaiss(String titre) { super(titre,true,true,true,true) ; //--------------------------------------------------------------------------// setSize(800,600); setLocation(0,0); setAutoscrolls(true) ; pane = new Container() ; SpringLayout layout = new SpringLayout(); pane.setLayout(layout); La1 = new JLabel("PAYS") ; La2 = new JLabel("Code postal") ; La3 = new JLabel("Client : ") ; La4 = new JLabel("Adresse : ") ; La5 = new JLabel("Ville : ") ; ParamCaisse param = new ParamCaisse() ; String numCaisse = param.recup() ; La6 = new JLabel("CAISSE N°" + numCaisse) ; ListePays = new JComboBox(TabPays) ; Jtcp = new JTextField("",5) ; Jtclient = new JTextField(" VISITEUR ",20) ; Jtadr = new JTextField("",20) ; Jtville = new JTextField("",20) ; //--------------------------------------------------------------------------// //--------------------------------------------------------------------------// pane.add(La1) ; pane.add(La2) ; pane.add(ListePays) ; pane.add(Jtclient) ; pane.add(La3) ; pane.add(Jtcp) ; pane.add(La4) ; pane.add(Jtadr) ; pane.add(La5) ; pane.add(Jtville) ; //--------------------------------------------------------------------------// layout.putConstraint(SpringLayout.WEST, La1,50,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La1,60,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, La2,120,SpringLayout.EAST, La1); layout.putConstraint(SpringLayout.NORTH, La2,60,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, ListePays,50,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, ListePays,15,SpringLayout.SOUTH, La1); layout.putConstraint(SpringLayout.WEST, Jtcp,0,SpringLayout.WEST, La2); layout.putConstraint(SpringLayout.NORTH, Jtcp,15,SpringLayout.SOUTH, La2); layout.putConstraint(SpringLayout.WEST, La3,50,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La3,15,SpringLayout.SOUTH, ListePays); layout.putConstraint(SpringLayout.WEST, Jtclient,120,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, Jtclient,15,SpringLayout.SOUTH, ListePays); layout.putConstraint(SpringLayout.WEST, La4,50,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La4,15,SpringLayout.SOUTH, La3); layout.putConstraint(SpringLayout.WEST, Jtadr,120,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, Jtadr,15,SpringLayout.SOUTH, Jtclient); layout.putConstraint(SpringLayout.WEST, La5,50,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La5,15,SpringLayout.SOUTH, La4); layout.putConstraint(SpringLayout.WEST, Jtville,120,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, Jtville,15,SpringLayout.SOUTH, Jtadr); //--------------------------------------------------------------------------// // FIN PARTIE CLIENT DEBUT PARTIE PRODUITS //--------------------------------------------------------------------------// Jb1 = new JButton("VALIDATION") ; Jb2 = new JButton("IMPRESSION") ; Jb3 = new JButton("ANNULATION") ; Jbtest = new JButton("test") ; pane.add(Jb1) ; pane.add(Jb2) ; pane.add(Jb3) ; pane.add(Jbtest); Jb1.addActionListener(this); Jb2.addActionListener(this); Jb3.addActionListener(this); Jbtest.addActionListener(this); layout.putConstraint(SpringLayout.WEST, Jb1,20,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, Jb1,50,SpringLayout.NORTH, Jtville); layout.putConstraint(SpringLayout.WEST, Jb2,20,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, Jb2,50,SpringLayout.NORTH, Jb1); layout.putConstraint(SpringLayout.WEST, Jb3,20,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, Jb3,50,SpringLayout.NORTH, Jb2); layout.putConstraint(SpringLayout.WEST, Jbtest,20,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, Jbtest,50,SpringLayout.NORTH, Jb3); //--------------------------------------------------------------------------// // FIN PARTIE PRODUIT DEBUT PARTIE INFOS //--------------------------------------------------------------------------// Date d = new Date() ; Locale locale = Locale.getDefault(); DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale); La7 = new JLabel(dateFormat.format(d)) ; La8 = new JLabel("MONTANT TOTAL :") ; La9 = new JLabel("0") ; La10 = new JLabel("€") ; pane.add(La7) ; pane.add(La8) ; pane.add(La9) ; pane.add(La10) ; pane.add(La6) ; layout.putConstraint(SpringLayout.WEST, La7,450,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La7,70,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, La8,450,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La8,90,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, La9,5,SpringLayout.EAST, La8); layout.putConstraint(SpringLayout.NORTH, La9,90,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, La10,5,SpringLayout.EAST, La9); layout.putConstraint(SpringLayout.NORTH, La10,90,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, La6,450,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La6,50,SpringLayout.NORTH, pane); //--------------------------------------------------------------------------// // FIN PARTIE INFO DEBUT PARTIE PAIEMENT //--------------------------------------------------------------------------// La11 = new JLabel("Mode de paiement") ; La12 = new JLabel("Type") ; La13 = new JLabel("Montant") ; La14 = new JLabel("Nombre de billets") ; La15 = new JLabel("0") ; La16 = new JLabel("Rendu Monaie") ; La17 = new JLabel("0") ; ListeModes = new JComboBox(TabModes) ; Jtmodes = new JTextField("",5) ; pane.add(La11) ; pane.add(La12) ; pane.add(La13) ; pane.add(ListeModes) ; pane.add(Jtmodes) ; pane.add(La14) ; pane.add(La15) ; pane.add(La16) ; pane.add(La17) ; layout.putConstraint(SpringLayout.WEST, La11,550,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La11,210,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, La12,550,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La12,240,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, La13,670,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La13,240,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, ListeModes,550,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, ListeModes,260,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, Jtmodes,670,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, Jtmodes,260,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, La14,550,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La14,300,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, La15,670,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La15,300,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, La16,550,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La16,330,SpringLayout.NORTH, pane); layout.putConstraint(SpringLayout.WEST, La17,670,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, La17,330,SpringLayout.NORTH, pane); Jtmodes.addKeyListener(this) ; ParamCatProd param2 = new ParamCatProd() ; Vector vect = param2.recupCat() ; Iterator it = vect.iterator() ; int cpt2 = 0 ; while(it.hasNext()) //pour chaque catégorie d'entrée { cpt2++; String cat = (String)it.next() ; String[] NomColones = {cat,"Prix","Quantité","Sous Total"}; ParamCatProd param3 = new ParamCatProd() ; Vector vectSousCat = param3.recupProd(cat); Iterator it2 = vectSousCat.iterator() ; Object[][] donne = new Object[vectSousCat.size()][] ; int cpt = 0 ; while(it2.hasNext()) { Produit prod = (Produit)it2.next() ; Object[] tab = {prod.getNom(),prod.getPrix()+"€","",""} ; donne[cpt] = tab ; cpt++; } CustomEditableCellTableModel model = new CustomEditableCellTableModel (donne, NomColones); TableauProduits = new JTable(model); int nbligne = model.getRowCount(); for(int i = 0 ; i<= nbligne ; i++) { model.addNotEditableCell (i, 0); model.addNotEditableCell (i, 1); model.addNotEditableCell (i, 3); } TableColumn colone2 = TableauProduits.getColumnModel().getColumn(2); JComboBox comboBox = new JComboBox(); comboBox.addItem("0") ; comboBox.addItem("1") ; comboBox.addItem("2") ; comboBox.addItem("3") ; comboBox.addItem("4") ; comboBox.addItem("5") ; comboBox.addItem("6") ; colone2.setCellEditor(new DefaultCellEditor(comboBox)); TableColumn column = null; for (int i = 0; i < 4; i++) { column = TableauProduits.getColumnModel().getColumn(i); if (i != 0) { column.setPreferredWidth(25); } } JScrollPane scrollPane = new JScrollPane(TableauProduits); scrollPane.setPreferredSize(new Dimension(350,100)); if(cpt>0) { pane.add(scrollPane) ; TableauProduits.getModel().addTableModelListener(this); } } //--------------------------------------------------------------------------// // couleur de fond de la fenêtre //--------------------------------------------------------------------------// pane.setBackground(new Color (200,200,230)); int cpt3 = 0 ; for(int cpt = 0 ; cpt < pane.getComponentCount() ; cpt++) { if(cpt>27) { layout.putConstraint(SpringLayout.WEST, pane.getComponent(cpt),150,SpringLayout.WEST, pane); layout.putConstraint(SpringLayout.NORTH, pane.getComponent(cpt),250+(cpt3*100),SpringLayout.NORTH, pane); cpt3++; } } getContentPane().setLayout(new GridLayout(1,1)); getContentPane().add(pane) ; //--------------------------------------------------------------------------// setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE); setVisible(true) ; } public void keyPressed(KeyEvent evt){ } public void keyReleased(KeyEvent evt){ if(!La9.getText().equals("0")){ try{ Float f = new Float(Jtmodes.getText()) ; float fl = f.floatValue() ; String tmp = La9.getText() ; Float l = new Float(tmp) ; float lf = l.floatValue() ; rendumonaie(lf,fl) ; } catch(NumberFormatException e) { } } } public void rendumonaie(float tot, float don) { if(don>tot) La17.setText("" + (don-tot)) ; else La17.setText("0") ; } public void keyTyped(KeyEvent evt) { } public void actionPerformed(ActionEvent evt) { if (evt.getSource() instanceof JButton) { String ChoixOption = evt.getActionCommand(); if (ChoixOption.equals("VALIDATION")) { ParamCaisse param = new ParamCaisse() ; String numCaisse = param.recup() ; try { Date d = new Date() ; Locale locale = Locale.getDefault(); DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, locale); LogEncaisse log = new LogEncaisse() ; log.ecrire(TabPays[ListePays.getSelectedIndex()],Jtcp.getText(),Jtclient.getText(),Jtadr.getText(),Jtville.getText(),numCaisse,dateFormat.format(d),La9.getText(),La15.getText(),TabModes[ListeModes.getSelectedIndex()],Jtmodes.getText(),La17.getText()) ; log.enregistreFichier() ; } catch (Exception e) { e.printStackTrace(); } } else if(ChoixOption.equals("ANNULATION")) { /*Jtcp.setText("") ; Jtclient.setText(" VISITEUR") ; Jtadr.setText("") ; Jtville.setText("") ; ListePays.setSelectedIndex(0) ; La9.setText("0") ; La15.setText("0") ; La17.setText("0") ; ListeModes.setSelectedIndex(0) ; Jtmodes.setText("") ;*/ setVisible(false) ; } else if(ChoixOption.equals("test")) { System.out.println(tabinfos); } } } public void tableChanged(TableModelEvent e) { if (e.getType() != TableModelEvent.UPDATE) return; else{ int ligne = e.getFirstRow() ; try { System.out.println("bonjour") ; TableModel model = (TableModel)e.getSource() ; if(model.getRowCount()>0){ Object a = model.getValueAt(ligne,3) ; float ancien = 0 ; if(!a.equals("")){ Float anc = (Float)model.getValueAt(ligne,3) ; ancien = anc.floatValue() ;} float prix ; float nb ; String tmp = (String)model.getValueAt(ligne,1) ; String p = tmp.substring(0,tmp.length()-1) ; prix = new Float(p).floatValue(); nb = new Integer((String)model.getValueAt(ligne,2)).intValue() ; model.setValueAt(new Float(prix*nb),ligne,3) ; if(ancien<(prix*nb)) { Float la = new Float(La9.getText()) ; float la9 = la.floatValue() ; la9+= ((prix*nb)-ancien); String temp = "" + la9 ; La9.setText(temp) ; float ancienratio = ancien/prix ; cptbillet+=(nb-ancienratio) ; temp = "" + cptbillet ; La15.setText(temp) ; //---------------------------------------------------------------------- String nomcat = model.getColumnName(0) ; String nomsouscat = (String)model.getValueAt(ligne,0) ; //Object[] tab = {nomcat,nomsouscat,new Float(prix),new Float(nb)} ; //System.out.println(tab) ; //tabinfos.add(tab) ; tabinfos.add(nomcat+nomsouscat+new Float(prix)+":"+new Float(nb)) ; //System.out.println(nomcat+nomsouscat+new Float(prix)+":"+new Float(nb)) ; //---------------------------------------------------------------------- } else { Float la = new Float(La9.getText()) ; float la9 = la.floatValue() ; la9-=(ancien-(prix*nb)); String temp = "" + la9 ; La9.setText(temp) ; float ancienratio = ancien/prix ; cptbillet-=(ancienratio-nb) ; temp = "" + cptbillet ; La15.setText(temp) ; //---------------------------------------------------------------------- String nomcat = model.getColumnName(0) ; String nomsouscat = (String)model.getValueAt(ligne,0) ; //Object[] tab = {nomcat,nomsouscat,new Float(prix),new Float(nb)} ; //System.out.println(tab) ; tabinfos.add(nomcat+nomsouscat+new Float(prix)+":"+new Float(nb)) ; //System.out.println(nomcat+nomsouscat+new Float(prix)+":"+new Float(nb)) ; //---------------------------------------------------------------------- } } } catch(StackOverflowError ev) { } if(!La9.getText().equals("0")){ try{ Float f = new Float(Jtmodes.getText()) ; float fl = f.floatValue() ; String tmp = La9.getText() ; Float l = new Float(tmp) ; float lf = l.floatValue() ; rendumonaie(lf,fl) ; } catch(NumberFormatException ex) { } } } } } class CustomEditableCellTableModel extends DefaultTableModel { private ArrayList listCellNotEditable; public CustomEditableCellTableModel () { super (); this.listCellNotEditable = new ArrayList (); } public CustomEditableCellTableModel (int numRows, int numColumns) { super (numRows, numColumns); this.listCellNotEditable = new ArrayList (); } public CustomEditableCellTableModel (Vector columnNames, int numRows) { super (columnNames, numRows); this.listCellNotEditable = new ArrayList (); } public CustomEditableCellTableModel (Object[] columnNames, int numRows) { super (columnNames, numRows); this.listCellNotEditable = new ArrayList (); } public CustomEditableCellTableModel (Vector data, Vector columnNames) { super (data, columnNames); this.listCellNotEditable = new ArrayList (); } public CustomEditableCellTableModel (Object[][] data, Object[] columnNames) { super (data, columnNames); this.listCellNotEditable = new ArrayList (); } public void addNotEditableCell (int row, int column) { if ( ! (column >= 0 && column < this.getColumnCount ()) ) { return; } if ( ! ((row >= 0) && (row < this.getRowCount ())) ) { return; } this.listCellNotEditable.add (new Point (row, column)); } public void removeNotEditableCell (int row, int column) { int index = this.listCellNotEditable.indexOf (new Point (row, column)); if ( index != -1 ) { this.listCellNotEditable.remove (index); } } // surcharge de la methode afin de renvoyer false a toutes les cellules // marque comme non editable public boolean isCellEditable (int row, int column) { int index = this.listCellNotEditable.indexOf (new Point (row, column)); if ( index == -1 ) { return ( true ); } else { return ( false ); } } } bon j'ai mis tout le code de cette page (ça fait peut etre bcp mais bon...) voila le pb est ds la methode public void tableChanged(TableModelEvent e) , tt le code est executé plusieurs fois.... pkoi ? merci a tous
Publicité
breizhbugs
 Posté le 22/08/2005 à 17:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Salut, C'est koi un TableModel? Bon j'ai pas lu le code mais voila: En supposant que ca ressemble a une zone d'edition, si tu rentres le mot "bonjour" au clavier, il y a 7 evenements, c'est a dire a chaque fois que tu rajoutes une lettre. donc le code est executer 7 fois. Donc le mieux pour savoir ce qui a change c'est que tu mette plein de println decrivant l'etat de ton truc, comme ca entre 2 execution tu compare et tu vois a quels evenement ca a reagi.
fourbiche
 Posté le 23/08/2005 à 09:18 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
yes merci, mais en fait je crois savoir d'ou vient le pb... un TableModel c'est ce qu'on utilise pour créer des tableau en java... En fait c'est quand j'utilise la methode SetValueAt(Object,int,int) sur le model pour changer la valeur d'une des case qu'il y a un soucis. En effet cela provoque une exception de type stackoverflow.... [bombe] je n'arrive toujours pas a changer une des valeurs sans avoir ce pb... j'ai bien essayé en faisant un try{....} catch(stackoverflow){....} mais c a ce moment la que le code est effectué plusieurs fois.... [boom] aidez moi please.....[rougir]
breizhbugs
 Posté le 23/08/2005 à 11:47 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Salut, Bon je fais plus de java depuis longtemps et je ne connais donc pas les fonction dont tu parles, toutefois j'ai remarquer ca: ... int ligne = e.getFirstRow() ; ... "Row" veut dire colonne, n'aurait tu pas confondu? Et donc tu accedes a une ligne qui n'existe pas donc stackoverflow?
fourbiche
 Posté le 23/08/2005 à 17:14 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
ben est tu vraiment sur que row veut dire ligne.... j'ai un vieux doute moi...[rougir] pouhh non mais la vraiment ça me saoul un peu les erreurs comme ça... mon code devient de plus en plus bordelique... ahahahahaaaa .... restons zen [chinois]
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
30,90 €Microsoft Office 2019 Professional Plus à 30,90 €
Valable jusqu'au 16 Août

Le vendeur sérieux LicenSE-ONline propose sur Amazon la clé d'activation légale pour Microsoft Office Professionnel 2019 Plus en français à 30,90 €. Cette clé livrée par email vous permettra d'activer Microsoft Office Professionnel 2019 Plus légalement et vous permettra ainsi d'utiliser autant de temps que vous voulez (il s'agit de la version complète et pas d'un abonnement) Word,Excel, PowerPoint, OneNote, Outlook, Publisher et Access 2019 sur un PC. La clé sera à activer sur Office.com où vous pourrez ensuite télécharger toute la suite bureautique. Pour mémoire, Microsoft Office Professionnel 2019 nécessite Windows 10. Sous Windows 7 ou 8, vous devrez vous tourner vers la version 2016. Pour plus d'info sur la procédure, n'hésitez pas à jeter un oeil à notre dossier pratique Acheter une clé OEM d'Office 2019 et l'installer.


> Voir l'offre
549,90 €Portable Honor Magicbook 14 (FullHD IPS, Ryzen 5, 8Go, 256Go SSD) + sac à dos + souris à 549,90 €
Valable jusqu'au 13 Août

Amazon fait une promotion sur l'ordinateur portable Honor Magicbook 14 accompagnée d'une souris sans fil Honor Mouse (valeur 29,90 €) et d'un sac à dos Honor Backpack (valeur 39,90 €) qui passe à 549,90 € livré gratuitement. Une bonne affaire pour ce portable bien équipé : écran 14 pouces FullHD IPS, Ryzen 5 3500U, 8 Go de RAM, SSD PCI-E 256 Go, WiFi, Bluetooth, Webcam et Windows 10. Le portable pèse 1,4 kg et offre jusqu'à 9h30 d'autonomie. Notez que la version 15 pouces passe également à ce prix (écran plus grand/1,53 kg)


> Voir l'offre
171,01 €PC Dell Optiplex 7010 (Core i5, 8 Go RAM, SSD 240 Go, Windows 10) reconditionné à 171,01 €
Valable jusqu'au 15 Août

Amazon fait une belle promotion sur l'ordinateur de bureau Dell Optiplex 7010 SFF reconditionné à neuf et garanti 1 an à 171,01 € livré gratuitement. Le PC est équipé d'un processeur Intel Core i5 3470 à 3.2 GHz, de 8 Go de RAM, d'un SSD de 240 Go, d'un graveur DVD et tourne sous Windows 10 Pro 64 bits. Rajoutez un écran, un clavier et une souris et vous aurez un ordinateur à l'aise en bureautique, Internet et multimédia. Notez que le Windows 10 fourni peut être en espagnol ou en italien mais que vous pouvez facilement changer la langue pour mettre Windows en Français.


> Voir l'offre

Sujets relatifs
probleme avec les JTable en java
probleme avec java
probleme avec java
probleme avec java hs_err_pid3744
Problème avec la Java Virtual Machine
Ameliorer le Main "Java" avec les fonctions & procédures
Problème avec WinPython - Spyder
Problème avec les espaces C++
problème avec un parametre de requete preparée MVC
Problème Access avec 2 inner join
Plus de sujets relatifs à probleme avec des tableChanged en java
 > Tous les forums > Forum Autres langages