我想在我的面板JscrollPane
中创建一个panneau
jsp。但是这个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);
}
答案 0 :(得分:4)
那是因为您最后添加了panneau
- 您应该添加jsp
; - )
此外,请勿将LayoutManager
设置为null
,因为这会导致问题(除非您知道自己在做什么)。根据您的要求,您可以在Visual Guide to Layout Managers。