|
|
|
|
Bonjour à tous !
j'ai un petit soucis
j'ai une classe qui etend JPanel dans laquel je place un JPanel vide et dans ce JPanel vide je remet un JPanel (avec des labels, des champs de texte ...).
le probleme, c'est que je n'arrive pas à afficher de scrollbar à ce dernier JPanel !
tous les composants s'affichent correctement (en tout cas une partie (la taille du JPanel)) mais pas de scrollbar !
Voici une partie de mon code
public class Page4 extends JPanel {
//declaration …
public Page4(String animal, double CA) {
//init ….
/*****************declaration JPanel*******************/
panneau = new JPanel();
panneau2 = new JPanel();
panneau2.setBounds(0,350,950,300);
add(panneau2);
panneau2.setLayout(new BorderLayout());
JScrollPane scroll = new JScrollPane(panneau);
panneau2.add(scroll, BorderLayout.CENTER);
panneau.setLayout(null);
int i=0;
int x=10;
int y=10;
while (rs.next())
{
String CUG_prod = rs.getString(1);
String design_prod = rs.getString(2);
tab_CUG[i] = new JLabel("" + CUG_prod);
tab_LIB[i] = new JLabel("" + design_prod);
tab_CUG[i].setBounds(x,y,L_LAB_CUG,H_LAB_CUG);
panneau.add(tab_CUG[i]);
x += 100;
tab_LIB[i].setBounds(x,y,L_LAB_LIB,H_LAB_LIB);
panneau.add(tab_LIB[i]);
x += 320;
i += 1;
y += 50;
x = 10;
}
Configuration: Windows XP Internet Explorer 6.0
C'est normal que ta scroll bar ne s'affiche pas puisque tu ne met aucune donnée dans ton JScrollPane.
panneau.add(tab_CUG[i]); Ce qui a pour conséquence de mettre tes données dans le premier JPanel (et non dans le JScrollPane). Or, 'panneau' n'est affilié à aucun conteneur de ton application, il n'est donc pas affiché ! Il te manque apres ton while (ou avant comme tu veux) une instruction comme suit : add(panneau); Mais ce que je te conseil c'est de mettre tes infos dans le JScrollPane comme cela, en remplacant dans ta boucle while les lignes : panneau.add(tab_CUG[i]); Par : scroll.add(tab_CUG[i]); ~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~ |
Salut!
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
/**
* Refactored by HackTrack ;-)
*
public class Page4 extends JPanel {
private JPanel panneau;
private DefaultTableModel tableModel;
private JTable table;
private String animal;
private double CA;
private String[] columnNames = new String[]{"CUG","Design"};
public Page4(String animal, double CA, String[][] dataTable) {
super();
this.animal = animal;
this.CA = CA;
initializeComponent(dataTable);
}
private void initializeComponent(String[][] dataTable) {
tableModel = new DefaultTableModel(dataTable,columnNames);
table=new JTable(tableModel);
setLayout(new BorderLayout());
setPreferredSize(new Dimension(320,200));
JScrollPane scroll = new JScrollPane(table);
add(scroll, BorderLayout.CENTER);
}
public static void main(String[] args){
JFrame view = new JFrame("Demo");
String[][] data=new String[][]{{"A","blah"},{"B","reblah"},{"C","encoreblah"}};
view.add(new Page4("Lion",1,data));
view.pack();
view.setVisible(true);
}
}
|