Probleme avec JTable
Coucou1504
Messages postés
65
Statut
Membre
-
Coucou1504 Messages postés 65 Statut Membre -
Coucou1504 Messages postés 65 Statut Membre -
Bonjour,
Voilà j'ai un petit problème. J'espere que vous allez pouvoir m'aider
Je dois récupérer les pesées d'une balance (jusque là tout fonctionne!!)
Je voudrais afficher ces resultats dans un JTable avec dans ce JTable un checkBox. Le problème c'est que je sais mettre le checkbox mais je n'arrive pas à integrer les poids dans mon JTable!
Voici le code pour creer le JTable
Pour récuperer les pesée :
Voilà aider moi ca fait 2 jours que je cherche une solution et je ne trouve pas!!
Je me demandé aussi comment faire pour récuperer un modele de JTable (TableModel) déjà creer et le complèter ensuite
Merci d'avance
Voilà j'ai un petit problème. J'espere que vous allez pouvoir m'aider
Je dois récupérer les pesées d'une balance (jusque là tout fonctionne!!)
Je voudrais afficher ces resultats dans un JTable avec dans ce JTable un checkBox. Le problème c'est que je sais mettre le checkbox mais je n'arrive pas à integrer les poids dans mon JTable!
Voici le code pour creer le JTable
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package balance;
import java.awt.Component;
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.comm.NoSuchPortException;
import javax.comm.PortInUseException;
import javax.comm.UnsupportedCommOperationException;
import javax.swing.JTable;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableCellRenderer;
import javax.swing.table.TableColumn;
/**
*
* @author Christine
*/
public class Tableau implements Runnable
{
JTable laTable;
private boolean DEBUG=false;
Balance balance;
public Tableau() throws IOException
{
this.laTable = new JTable(new MyTableModel());
initColumnSizes(laTable);
// balance=new Balance();
}
private void initColumnSizes(JTable table) {
MyTableModel model = (MyTableModel)table.getModel();
TableColumn column = null;
Component comp = null;
int headerWidth = 0;
int cellWidth = 0;
Object[] longValues = model.longValues;
TableCellRenderer headerRenderer =
table.getTableHeader().getDefaultRenderer();
int indexFin=0;
for (int i = 0; i < indexFin; i++) {
System.out.println(i);
System.out.println(indexFin);
column = table.getColumnModel().getColumn(i);
comp = headerRenderer.getTableCellRendererComponent(
null, column.getHeaderValue(),
false, false, 0, 0);
headerWidth = comp.getPreferredSize().width;
comp = table.getDefaultRenderer(model.getColumnClass(i)).
getTableCellRendererComponent(
table, longValues[i],
false, false, 0, i);
cellWidth = comp.getPreferredSize().width;
if (DEBUG) {
System.out.println("Initializing width of column "
+ i + ". "
+ "headerWidth = " + headerWidth
+ "; cellWidth = " + cellWidth);
}
column.setPreferredWidth(Math.max(headerWidth, cellWidth));
}
}
public Object[][] tableauResultat() throws IOException
{
int nombreLigne=20;
Object[][] tableaudesResultats=null;
int colNo =4;
tableaudesResultats = new Object[nombreLigne][colNo];
ArrayList poids=balance.VerificationPeser();
for(int index=0;index<nombreLigne;index++)
{
int numAiguille=Balance.RecupererNumAiguille(index);
int numEchantillon=Balance.RecupererNumEchantillon(index);
tableaudesResultats[index][0]=numEchantillon;
tableaudesResultats[index][1]=numAiguille;
tableaudesResultats[index][2]=poids.get(index);
tableaudesResultats[index][3]=new Boolean(false);
}
return tableaudesResultats;
}
public Object[][] getResultat() throws IOException
{
Object[][] tableaudesResultats=null;
tableaudesResultats=tableauResultat();
return tableaudesResultats;
}
public void run() {
try {
tableauResultat();
} catch (IOException ex) {
Logger.getLogger(Tableau.class.getName()).log(Level.SEVERE, null, ex);
}
}
class MyTableModel extends AbstractTableModel {
private String[] columnNames;
private Object[][] data;
public final Object[] longValues = {"Vosse","Christine",Boolean.TRUE,Boolean.TRUE};
private boolean DEBUG;
public MyTableModel() throws IOException
{
String[] columnNamesResultat={"Num Aiguille","Num Echantillon","Poids","Erreur"};
columnNames=columnNamesResultat;
data=getResultat();
}
public int getColumnCount() {
return columnNames.length;
}
public int getRowCount() {
return data.length;
}
public String getColumnName(int col) {
return columnNames[col];
}
public Object getValueAt(int row, int col) {
return data[row][col];
}
/*
* JTable uses this method to determine the default renderer/
* editor for each cell. If we didn't implement this method,
* then the last column would contain text ("true"/"false"),
* rather than a check box.
*/
public Class getColumnClass(int c) {
return getValueAt(0, c).getClass();
}
/*
* Don't need to implement this method unless your table's
* editable.
*/
public boolean isCellEditable(int row, int col) {
//Note that the data/cell address is constant,
//no matter where the cell appears onscreen.
if (col < 3) {
return true;
} else {
return false;
}
}
/*
* Don't need to implement this method unless your table's
* data can change.
*/
public void setValueAt(Object value, int row, int col) {
if (DEBUG) {
System.out.println("Setting value at " + row + "," + col
+ " to " + value
+ " (an instance of "
+ value.getClass() + ")");
}
data[row][col] = value;
fireTableCellUpdated(row, col);
if (DEBUG) {
System.out.println("New value of data:");
printDebugData();
}
}
private void printDebugData() {
int numRows = getRowCount();
int numCols = getColumnCount();
for (int i=0; i < numRows; i++) {
System.out.print(" row " + i + ":");
for (int j=0; j < numCols; j++) {
System.out.print(" " + data[i][j]);
}
System.out.println();
}
System.out.println("--------------------------");
}
}
}
Pour récuperer les pesée :
public ArrayList VerificationPeser() throws IOException
{
String poids=bufRead.readLine();
poids=poids.replace(" ","");
if(poids.contains("g"))
{
poids=poids.replace("g", "");
poids=poids.replace("+", "");
poids=poids.replace("-", "");
float pds=Float.parseFloat(poids);
listePoids.add(pds);
return listePoids;
}
else
{
sound player = new sound("Probleme.wav");
InputStream stream = new ByteArrayInputStream(player.getSamples());
player.play(stream);
VerificationPeser();
}
return null;
}
Voilà aider moi ca fait 2 jours que je cherche une solution et je ne trouve pas!!
Je me demandé aussi comment faire pour récuperer un modele de JTable (TableModel) déjà creer et le complèter ensuite
Merci d'avance
1 réponse
Bonsoir !
C'est bon ne cherchez plus j'ai trouvé!!
J'ai récupéré les poids en créant le tableau. Mais maintenant j'ai un autre probleme, peut-on mettre un THREAD avec un JTable.
Car en fait je voudrais que les données de mon tableau s'affichent au fur et à mesure. Est ce possible?? Je pense que je vais ouvir un nouveau post.
Merci d'avance
C'est bon ne cherchez plus j'ai trouvé!!
J'ai récupéré les poids en créant le tableau. Mais maintenant j'ai un autre probleme, peut-on mettre un THREAD avec un JTable.
Car en fait je voudrais que les données de mon tableau s'affichent au fur et à mesure. Est ce possible?? Je pense que je vais ouvir un nouveau post.
Merci d'avance