0

2 つのパネル間で削除して再描画するためにイベント ハンドラーを使用する方法を理解するのに問題があります。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class PanelSwitcherView extends JFrame {
private JPanel panel1, panel2;

public PanelSwitcherView() {
    super("Panel Switching Test");

    Font font = new Font("SansSerif", Font.BOLD, 30);
    panel1 = new JPanel();
    panel1.setLayout(new GridLayout(2, 2, 5, 5));

    font = new Font("Serif", Font.ITALIC, 30);
    panel2 = new JPanel();
    panel2.setLayout(new BorderLayout());

ここで、テスト ActionListener を追加することにしましたが、正しく使用されているかどうかは不明です

    font = new Font("Monospaced", Font.BOLD + Font.ITALIC, 30);
    JButton button = new JButton("Switch Panels");
    button.addActionListener(new ActionListener(){
       public void actionPerformed(ActionEvent e){
          System.out.print("Test");
          PanelSwitcherModel.switchPanel(); // used to make value of whichpanel 1 or 2
       }
    });
    button.setFont(font);
    add(button, BorderLayout.NORTH);

    add(panel1, BorderLayout.CENTER);
}

これも使い方がよくわからない

    public void displayPanel(int whichPanel) {
    remove(panel1);
    remove(panel2); 
    if (whichPanel == 1) {
        System.out.println("Should display panel1");
        add(panel1, BorderLayout.CENTER);
    } else {
        System.out.println("Should display panel2");
        add(panel2, BorderLayout.CENTER);
    }
    validate();
    repaint();
}

私のコントローラー(以下のクラス)

public void register(PanelSwitcherController controller) {

   }

問題は主にここにあります。私は初心者です。何らかの方法で ActionListener をここに移動しますか? パネル オプションの番号を 1 から 2 に変更するために、他のクラスにアクセスするにはどうすればよいですか?

import java.awt.event.*;


public class PanelSwitcherController implements ActionListener{

  public PanelSwitcherController(PanelSwitcherView view,
         PanelSwitcherModel model) {
   }

   public void actionPerformed(ActionEvent e) {

   }

   }
4

0 に答える 0