Beberto56
Messages postés119Date d'inscriptionmardi 8 avril 2008StatutMembreDernière intervention22 décembre 2008
-
13 mai 2008 à 22:12
Beberto56
Messages postés119Date d'inscriptionmardi 8 avril 2008StatutMembreDernière intervention22 décembre 2008
-
21 mai 2008 à 10:27
Bonjour,
je réalise un formulaire en java grâce à netbeans, et j'ai placé un tableau (jTable) en mode design sur ce formulaire.
Ce tableau est composé de sept colonnes avec les jours de la semaine et une ligne avec la semaine numero 1.
J'ai une zone de text ou on saisi le nombre de semaine désirée. Je voudrais que le nombre de ligne de mon tableau évolu en fonction du nombre de semaines saisie.
Si on saisie 3 dans nombre de semaine le tableau ajoute automatiquement deux lignes correspondant a deux nouvelles semaines.
Si quelqu'un peut me guider et me conseiller je lui en serait reconnaissant.
Merci d'avance.
Cordialement Julien.
A voir également:
Ajouter un element dans un tableau java
Java ajouter element tableau - Meilleures réponses
Ajouter element tableau java - Meilleures réponses
DefaultTableModel model = new DefaultTableModel(data, columnNames);
JTable table = new JTable(model);
// Ajouter une nouvelle ligne vide
model.add(new Object[] {});
ou bien
model.add(new Vector());
Comme tu utilises NetBeans, il faut personnaliser la création du composant JTable.
J'ai fait une petit exemple, j'ai vu que le générateur de code utilise déja un DefaultTableModel pour créer le composant de type JTable, donc il te suffira d'écrire tout simplement:
Par exemple tu peux ajouter ce code dans la méthode actionPerformed() d'un ActionListener:
DefaultTableModel model = (DefaultTableModel)table.getModel();
model.addRow(new Object[] {"data", "data", "data"});
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 15 mai 2008 à 21:06
Salut:
"Je voudrais que lorsque l'on entre un nombre de semaine, il y est un nombre de ligne de tableau équivalent qui apparaissent."
// Tableau
final JTable table = ...;
// Le nombre de semaines est saisit dans ce champs
final JTextField inputField = ...;
inputField.setInputVerifier(new InputVerifier() {
public boolean verify(JComponent comp) {
JTextField field = (JTextField)comp;
return field.getText().matches("[1-9]*");
}
});
// Action
JButton submit = new JButton("Submit");
submit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
String text = inputField.getText();
if (text.equals("")) {
text = "0";
}
int count = new Integer(text).intValue();
DefaultTableModel model = (DefaultTableModel)table.getModel();
for (int i = 0; i < count; ++i) {
model.addRow(new Object[] {"data", "data", "data", "data", "data", "data", "data"});
}
}
});
Note: si les variables table et inputField sont deux attributs de ta classe alors ce n'est pas nécessaire d'ajouter le modificateur final, si ce n'est pas le cas alors le modificateur final est nécessaire.
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 15 mai 2008 à 21:09
Salut:
Petite rectification
// Le nombre de semaines est saisit dans ce champs
final JTextField inputField = ...;
inputField.setInputVerifier(new InputVerifier() {
public boolean verify(JComponent comp) {
JTextField field = (JTextField)comp;
try {
Integer.parseInt(field.getText());
return true;
} catch (NumberFormatException e) {
return false;
}
}
});
Ombitious_Developper
Messages postés2333Date d'inscriptionsamedi 28 février 2004StatutMembreDernière intervention26 juillet 201339 20 mai 2008 à 20:14
Salut:
Tout dépend de la façon avec laquelle tu veux valider le nombre de lignes saisies par l'utilisateur.
Tu peux par exemple ajouter un bouton pour valider la saisie de l'utilisateur.
Ou bien tu peux ajouter un KeyListener au champs de saisie qui une fois on appuie sur entrée il exécute le code.
Comme tu peux combiner ces deux styles ce qui est encouragé.
Créer une méthode quelconque:
private void createRows() {
String text = inputField.getText();
if (text.equals("")) {
text = "0";
}
int count = new Integer(text).intValue();
DefaultTableModel model = (DefaultTableModel)table.getModel();
for (int i = 0; i < count; ++i) {
model.addRow(new Object[] {"data", "data", "data", "data", "data", "data", "data"});
}
}
public class Main extends javax.swing.JFrame {
// ...
// Variables declaration - do not modify
private javax.swing.JTextField field;
private javax.swing.JButton submitButton;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable table;
// End of variables declaration
}
1. Attacher un ActionListener au bouton de validation:
Beberto56
Messages postés119Date d'inscriptionmardi 8 avril 2008StatutMembreDernière intervention22 décembre 2008 15 mai 2008 à 14:59
Re,
je te remerci dans un premier temps pour l'attention que tu à porté à ma question. En fait si tu veux j'ai une zone de texte jTextField1 ou je peut saisir un nombre de semaine et j'ai placer un tableau avec plusieurs colonnes et une ligne de base qui correspond a une semaine obligatoire.
Je voudrais que lorsque l'on entre un nombre de semaine, il y est un nombre de ligne de tableau équivalent qui apparaissent. Si on entre un cycle de 3 semaines, mon tableau fait apparaître deux lignes supplémentaire.
Comme tu peut le constater je suis débutant en java et j'avous que cela me dépasse un peu. J'ai essayer ta solution mais je n'arrive pas à la lier à la saisi de la zone de texte.
Beberto56
Messages postés119Date d'inscriptionmardi 8 avril 2008StatutMembreDernière intervention22 décembre 2008 20 mai 2008 à 11:55
Re ombitious tout d'abord merci pour tes explications , mais le problème c'est que j'utilise le panel design de netbeans et donc je te met le code test que j'ai mis en place :
mon tableau s'appel table
mon champs de texte s'appel field
voila ou j'en suis cad au début je n'arrive pas a adapter ton code peux tu modifier le mien stp je me perd dans les noms et les codes (arf ces débutants^^)
package testevoltablo;
public class Main extends javax.swing.JFrame {
public Main()
{
initComponents();
}
//Zone d'action sur le bouton ajouter
//ton bout de code numero1
/*String text = inputField.getText();
if (text.equals(""))
{
text = "0";
}
int count = new Integer(text).intValue();
DefaultTableModel model = (DefaultTableModel)table.getModel();
for (int i = 0; i < count; ++i)
{
model.addRow(new Object[] {"data", "data", "data", "data", "data", "data", "data"});
}*/