Java : Jpanel sur plusieurs lignes

Fermé
bernardg49 Messages postés 1 Date d'inscription dimanche 14 octobre 2012 Statut Membre Dernière intervention 14 octobre 2012 - 14 oct. 2012 à 21:07
Bonjour

Je suis nouveau sur ce forum et débutant en langage java.

Je voudrais placer des éléments sur deux lignes dans le Jpanel nord et je ne sais pas comment faire. Les commandes
setLayout(new GridLayout(2,2));
ou
JPanel panelNord = new JPanel(new GridLayout(2,2));
ne fonctionnent pas et Eclispe me renvoie un message d'erreur.

Comment corriger cette erreur ?

De plus je voudrai mettre une liste dans le panel ouest pour récupérer un choix sur plusieurs éléments. Comment puis-je faire ?

Je vous envoie la classe complète.

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.event.CaretEvent;
import javax.swing.event.CaretListener;

public class PanelPrincipal extends JPanel implements CaretListener {


private JTextField a;
private JTextField b;
private JTextField c;
private JTextField d;
private JTextField aa;
private JTextField bb;
private JTextField cc;
private JTextField dd;

private PanelTrace panelTrace;

public PanelPrincipal(){
a = new JTextField("0");
a.addCaretListener(this);
a.setPreferredSize(new Dimension(40, 20));
b = new JTextField("0");
b.addCaretListener(this);
b.setPreferredSize(new Dimension(40, 20));
c = new JTextField("0");
c.addCaretListener(this);
c.setPreferredSize(new Dimension(40, 20));
d = new JTextField("0");
d.addCaretListener(this);
d.setPreferredSize(new Dimension(40, 20));
aa = new JTextField("0");
aa.addCaretListener(this);
aa.setPreferredSize(new Dimension(40, 20));
bb = new JTextField("0");
bb.addCaretListener(this);
bb.setPreferredSize(new Dimension(40, 20));
cc = new JTextField("0");
cc.addCaretListener(this);
cc.setPreferredSize(new Dimension(40, 20));
dd = new JTextField("0");
dd.addCaretListener(this);
dd.setPreferredSize(new Dimension(40, 20));
setLayout(new BorderLayout());
JPanel panelNord= new JPanel();
//setLayout(new GridLayout(2,2));
//JPanel panelNord = new JPanel(new GridLayout(2,2));
panelNord.add(new JLabel("heure (minutes)"));
panelNord.add(aa);
panelNord.add(new JLabel("centigrammes"));
panelNord.add(a);
panelNord.add(new JLabel("heure (minutes)"));
panelNord.add(bb);
panelNord.add(new JLabel("centigrammes"));
panelNord.add(b);
add(panelNord, BorderLayout.NORTH);
panelTrace = new PanelTrace();
panelTrace.setBorder(BorderFactory.createEtchedBorder());
add(panelTrace, BorderLayout.CENTER);
JPanel panelSud = new JPanel();
panelSud.add(new JLabel("heure (minutes)"));
panelSud.add(cc);
panelSud.add(new JLabel("centigrammes"));
panelSud.add(c);
panelSud.add(new JLabel("heure (minutes)"));
panelSud.add(dd);
panelSud.add(new JLabel("centigrammes"));
panelSud.add(d);
add(panelSud, BorderLayout.SOUTH);


}

public void caretUpdate(CaretEvent arg0) {
if(a.getText().length()>0 && b.getText().length()>0 && c.getText().length()>0){
panelTrace.dessiner(
Integer.parseInt(a.getText()),
Integer.parseInt(b.getText()),
Integer.parseInt(c.getText()),
Integer.parseInt(d.getText()),
Integer.parseInt(aa.getText()),
Integer.parseInt(bb.getText()),
Integer.parseInt(cc.getText()),
Integer.parseInt(dd.getText())
);
repaint();
}
}
}

Merci à ceux qui pourrons m'apporter leur aide.

Cordialement
A voir également: