> 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 participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
135,70 €Imprimante 3D Creality Ender 3 à 135,70 € avec le code BgD0dE93 (stock Europe)
Valable jusqu'au 01 Mars

Banggood fait une belle promotion sur l'imprimante 3D Creality Ender 3 à 135,70 € livrée en France (avec l'assurance) avec le code BgD0dE93. On la trouve ailleurs autour de 180 €. L'imprimante est expédiée depuis un stock Europe (en République Tchèque). Elle sera donc rapide et vous êtes sûr de ne pas avoir de douane. 

La Creality Ender 3 est l'une des machines les plus populaires actuellement sur le marché. Et pour cause. Elle dispose d'un volume d’impression de 220 x 220 x 250 mm, est équipée d'un plateau chauffant inspiré du BuildTak, d'un écran LCD et offre des fonctionnalités pratiques comme la reprise de l'impression après une coupure de courant ou le conduit pour le filament étroit. L'imprimante 3D est facile à assembler et le calibrage est aisé grâce aux gros boutons. 


> Voir l'offre
52,50 €SSD Crucial P2 500 Go (3D NAND, NVMe, PCIe, M.2, 2400 Mo/s) à 52,50 €
Valable jusqu'au 28 Février

Amazon fait une promotion sur le SSD Crucial P2 500 Go (3D NAND, NVMe, PCIe, M.2) qui passe à 52,50 €.  On le trouve ailleurs à partir de 70 €. Ce SSD offre des vitesses de lecture/écriture séquentielle allant jusqu’à 2 400/ 1 900 Mo/s. Il est garanti 5 ans. La livraison est gratuite.


> Voir l'offre
171,99 €Ecran 24 pouces Iiyama G2470HSU-B1 (FullHD, IPS, 1 ms, 165 Hz) à 171,99 €
Valable jusqu'au 28 Février

Cdiscount fait une promotion sur l'écran 24 pouces Iiyama G2470HSU-B1 qui passe à 171,99 € alors qu'on le trouve ailleurs à partir de 200 €. Cet écran à bord fin possède une dalle IPS FullHD (1920x1080px), offre un temps de réponse de 1 ms, une vitesse de rafraichissement de 165 Hz. Il est compatible FreeSync. Il possède 2 ports HDMI et un port DP.


> 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