2

同じモジュールに 3 つのクラスがあります。

  1. MenuAPI (インターフェース)
  2. メニューJPanel (JPanel)
  3. デモ (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();
        }
}
4

0 に答える 0