同じモジュールに 3 つのクラスがあります。
- MenuAPI (インターフェース)
- メニューJPanel (JPanel)
- デモ (JPanel)
NetBeans プラットフォーム ルックアップを使用して、MenuJPanel で CardLayout を使用してパネルを切り替えようとしています。何らかの理由で、System.out テキストのみが出力されますが、カードは表示/切り替えられません。以下は短いコード例です (元のコードで CardLayout を適切に作成および定義しました)。
public interface MenuAPI {
public void showPanel1();
public void showPanel2();
}
@ServiceProvider(service = MenuAPI.class)
public class MenuJPanel extends javax.swing.JPanel implements MenuAPI {
private void displayPanel(String s) {
CardLayout cardLayout = (CardLayout) this.getLayout();
cardLayout.show(this, s);
}
@Override
public void showPanel1() {
System.out.println("Panel1");
displayPanel("panel1");
}
@Override
public void showPanel2() {
System.out.println("Panel2");
displayPanel("panel2");
}
}
public class Demo extends javax.swing.JPanel{
//This is just a button with an Event Listener
private void btnShowPanel1ActionPerformed(java.awt.event.ActionEvent evt) {
MenuAPI menuAPI = Lookup.getDefault().lookup(MenuAPI.class);
menuAPI.showPanel1();
}
}