我想JscrollPane
在我的面板中创建一个 jsp panneau
。但这JscroolPane
并没有出现。我觉得麻烦的是我习惯setLayout
了null
。
代码可能会产生这样的布局,文本字段的行数和列数是可变的(在构造函数中):
那是我的代码:
public class Cadre_fenetreA3 extends JFrame
{
JButton boutonOK = new JButton ("OK");
public Cadre_fenetreA3 (String nom,int X, int Y, int lo, int la, int nbligne,int nbcolonne,String[] nomGrpGen, int Na, File file, boolean dernier)
{
super(nom);
setBounds(X,Y,500,500);
setVisible(true);
setFocusable(true);
JLabel phrase = new JLabel("<html>Veuillez indiquer l'appartenance ou non d'un attribut <br> a un groupe d'attribut du Niveau :</html>"+Na);
JTextField[][] allField = new JTextField [nbligne][nbcolonne];
JLabel phrases[] = new JLabel [nbligne];
JPanel panneau = new JPanel();
JScrollPane jsp = new JScrollPane(panneau);
jsp.createVerticalScrollBar();
jsp.createHorizontalScrollBar();
jsp.setBounds(20,20, 20, 20);
panneau.setLayout(null);
for(int i = 0;i < nbligne;i++)
{
for(int j = 0;j<nbcolonne;j++)
{
int random = (int)(Math.random()*2);
allField[i][j] = new JTextField(String.valueOf(random));
allField[i][j].setBounds(150+j * 30, 75 + i * 30, 20, 20);
panneau.add(allField[i][j]);
}
phrases[i] = new JLabel(nomGrpGen[i]);
phrases[i].setBounds(5, 75+ i * 30, 200, 20);
panneau.add( phrases[i]);
}
phrase.setBounds(0,0,1000,50);
panneau.add(phrase);
boutonOK.setBounds(lo-90,la-110,60,60);
boutonOK.addActionListener(new ecout(nbligne,nbcolonne,allField, file, dernier));
panneau.add(boutonOK);
add(jsp);
}