私のプログラムにはタブ付きのビューがあり、各タブの下には複数のパネルがあり、ボタンを使って回転します。私はこれらのタブごとにCardLayoutを実装することに決めました。私は約7つのタブがあることを踏まえて、物事をもっときれいにするためのクラスを書くことに決めました。このクラスはPanelSystemと呼ばれ、すでに作成されているJPanelを取り込んでCardLayoutに追加します。パネル間を移動するswitchPanelメソッドも実装します。これまでのところ私が持っている:私のプログラムのCardLayoutsの作成のためのJavaクラスの作成
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を実装しなければならなかった各タブのためのJPanelの異なる数が...パネルラインがあるので。私はこれがまだ正しく動作するかどうかはわかりませんが、問題はコンストラクタの最後にあります。コンストラクタの最後に、追加した方法のために一意の識別子がないため、最初のカードを表示しようとしています。どのように私はこれを修正できるかについての任意の考え??事前にみんなありがとう!
洞察に感謝アンドリュー!私はそれがどのように働いたのか分かりませんでした。だから私がこれをした場合: パブリックPanelSystem(JPanel ...パネル、文字列...名前) 私はパネルと名前の2つの配列を取得します。これのポイントは、パネルに続いてString識別子を指定することです。これはうまくいくのでしょうか? – user1058210
悲しいことに、最後の引数だけがvarargsになることができます(そうしないと、コンパイラはどこで終了したのかわかりません)。 –
ahhです。あなたが私に示した方法の唯一の潜在的な問題は、数字が何パネルを指しているのかを知ることが難しいかもしれないということです。 – user1058210