JTabbedPane
-
Hello,
Ich habe mehrere JTabbedPane in einer Array erstellt
nach eine aufruf eine methode , die die Nr des JTabbedPane bekommt soll die angeforderte JTabbedPane angezeigt. Aber leider tut es nicht
es wird immer die Letzte JTabbelPane angezeigtpublic class Test ....
{
JCompoenet c;
public Test()
{
..
TopicCreator t = new TopicCreator();
c = t.displayTabbedPane(0); // here i want to view the first TabbedPane
add(c, ...); // but i see alway the fourth TabbedPane}
..
}import java.io.;
import java.awt.;
import java.awt.event.;
import javax.swing.;public class TopicCreator
{JTabbedPane []topics= new JTabbedPane[5];
JPanel pTopics = new JPanel();public TopicCreator()
{
pTopics.setLayout(new BorderLayout());
JPanel []p = new JPanel[25];
int x = 0;
for(int j = 0; j < topics.length; j++){
topics[j] = new JTabbedPane();
for(int i=0; i < 5; i++){
topics[j].addTab("tab "+i, new JLabel("Test"));
x++;
}
topics[j].setVisible(false);
pTopics.add(topics[j],BorderLayout.CENTER);
}
}
//------------------------------------------------------------
public JComponent displayTabbedPane(int topicNr)
{
for(int i=0; i < topics.length; i++){
if( i == topicNr){
topics[i].setVisible(true);
break;
}else{
topics[i].setVisible(false);
}
}
return (JComponent)pTopics;
}
//-----------------------------------------------------------
}danke
-
Du musst das break aus dem if entfernen, da sonst alle Panes nach der sichtbaren nicht mehr auf unsichtbar gesetzt werden. Die for Schleife wird beendet.
IMHO ist es aber sinnvoller das if gleich durch Folgendes zu ersetzen:
topics[i].setVisible( i == topicNr );
HTH
Bye, TGGC