プログラムにタブ付きのビューがあり、各タブの下にいくつかのパネルがあり、それらをボタンで回転させます。これらのタブのそれぞれに CardLayout を実装することにしました。約 7 つのタブがあることを考慮して、物事を少しすっきりさせるクラスを作成することにしました。このクラスは PanelSystem と呼ばれ、すでに作成されている JPanels を取り込み、それらを CardLayout に追加します。また、パネル間を移動するための switchPanel メソッドも実装します。これまでのところ、私は持っています:
public class PanelSystem {
JPanel cards;
CardLayout cl;
public PanelSystem(JPanel...panels) {
// Create Panel with card layout
cards = new JPanel(new CardLayout());
// Add all the panels to the card system
for (JPanel p : panels) cards.add(p);
// Gains access to the card layout?
cl = (CardLayout)(cards.getLayout());
// Show starting card
cl.show(cards, *UNIQUE IDENTIFIER*);
}
}
タブごとに異なる数の JPanel があるため、JPanels...panels 行を実装する必要がありました。これが正しく機能するかどうかはまだわかりませんが、最初のカードを表示しようとしているコンストラクターの最後で問題が発生します。これは、追加した方法のために一意の識別子がないためです。これを修正する方法について何か考えはありますか?? よろしくお願いします!