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) {
}
}