こんにちはこれは私の具体的な問題です。 forループを使用して1つのパネルに1つのボタンを追加しようとしました。JButtonがJPanel上にある必要があります。
これはJButtonを作成するためのループです。
nizButtona=new JButton[22];
for(int i=0;i<nizButtona.length;i++){
nizButtona[i] = new JButton();
if(i==0){
nizButtona[i].setText("Započni kviz"); //Start quiz
nizButtona[i].addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
cl.next(nizPanela[1]);
}
});
}else if(i==1){
nizButtona[i].setText("Izlaz"); //Quit
nizButtona[i].addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
}else if(i<12){
nizButtona[i].setText("Sledeće pitanje"); //Next question, on next panel
nizButtona[i].addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
cl.next(nizPanela[1]);
}
});
}
これはパネルにボタンを追加するための新しいループです。ここで、nizButtona [i-1]はi-1です。なぜなら、次の質問の最初のボタンは、JPanelよりも1つの引数が必要なためです。そして、すべてのコンポーネントのGridBagLayoutを使用するので、すべてのパネルを同じ場所に配置します。それがなければ問題は同じです。
for(int i=3;i<=11;i++){
nizPanela[i].add(nizButtona[i-1]);
}
ここで私はJPanelの配列を作成しました。
nizPanela = new JPanel [13];
for (int i=0;i<nizPanela.length;i++){
nizPanela[i] = new JPanel();
if(i<=1){
okvir.getContentPane().add(nizPanela[i]);//Does i real need this getContentPane?
}else{
nizPanela[i].setLayout(new GridBagLayout());
nizPanela[1].add(nizPanela[i], String.valueOf(i));
}
}
cl=new CardLayout();
nizPanela[1].setLayout(cl);
cl.show(nizPanela[1],"2");
これは、プログラムがSledećeがこのパネルに表示さpitanjeが、それはする必要がありませんphotoボタンを見てどのようです。これは、マウスポインタをこのボタンの場所に移動すると表示されます。
ちょうどあなたのコードを貼り付けないでください。これをデバッグするためにどのような手順を取っていますか?コードのどの部分が機能していないかを正確に特定し、関連するスニペットをポストするだけですか? –
私は構文エラーがないので問題は論理的なので、私のコードからすべての行を投稿する方が良いと思います。問題は、私はフレーム上のJButtonを見ることができません。 – GlacialMan
しかし、関連性があると思われるコードを投稿するのがベストプラクティスです。どのコードが重要なのかわからなくても、コードを別のブロックに分割し、コードブロック間でそれぞれの目的を説明する必要があります。 –