세 페이지가있는 소프트웨어를 만들고 싶습니다. "홈 페이지"(JFrame "프레임"에 그려져 있음), "페이지 2"및 " 3 페이지.두 번째 페이지에서 세 번째 페이지를 호출 할 수 없습니다.
페이지 2와 3은 "프레임"에 그려집니다.
하나는 페이지의 왼쪽에있는 탐색 창을 사용하고 주요 내용은 오른쪽에 있습니다.
현재 두 번째 페이지로 이동할 수 있습니다. JFrame에 페이지 2를 그리기 위해 호출 된 클래스는 페이지 3을 호출 할 수 없습니다. 다음과 같이
내 코드는 다음과 같습니다
// The Home Page
package Try;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class HomePage {
JPanel panelHomeWrapper = new JPanel();
JPanel panelNavigation = new JPanel();
JPanel panelDisplay = new JPanel();
JButton buttonNavigation = new JButton("Button Home = Menu Items");
JButton buttonBody = new JButton("Button body Page Home = Home body Items");
public static void main (String[] args) {
HomePage home = new HomePage();
home.homePanel();
}
public void homePanel() {
JFrame frame = new JFrame("Home");
JButton button = new JButton("Button");
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent actionEvent) {
System.out.println("Panel 2 was called.");
Page2 panel2 = new Page2();
panelNavigation.remove(buttonNavigation);
panelDisplay.remove(buttonBody);
panelNavigation.add(panel2.buttonNavigation);
panelDisplay.add(panel2.buttonBody);
panelNavigation.validate();
panelNavigation.repaint();
panelDisplay.validate();
panelDisplay.repaint();
}
};
button.addActionListener(actionListener);
buttonNavigation.addActionListener(actionListener);
panelNavigation.add(buttonNavigation);
panelDisplay.add(buttonBody);
panelHomeWrapper.add(panelNavigation);
panelHomeWrapper.add(panelDisplay);
frame.add(panelHomeWrapper);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(455, 355);
frame.setVisible(true);
}
} // End of Home Page
페이지 2
// Page 2
package Try;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Page2 {
JButton buttonNavigation = new JButton("Button 2 = Menu Items");
JButton buttonBody = new JButton("Button body Page 2 = Page 2 body Items");
ActionListener actionListenerCallAnotherPage = new ActionListener() {
@Override
public void actionPerformed(ActionEvent actionEvent) {
System.out.println("Button Body 3 was called.");
HomePage home = new HomePage();
Page3 panel3 = new Page3();
home.panelDisplay.remove(buttonBody);
home.panelDisplay.add(panel3.buttonBody3);
home.panelDisplay.validate();
home.panelDisplay.repaint();
}
};
public void addAction() {
buttonNavigation.addActionListener(actionListenerCallAnotherPage);
}
}
페이지 3
// Page 3
package Try;
import javax.swing.JButton;
public class Page3 {
JButton buttonBody3 = new JButton("Page 3");
} // End of Page 3
날 2 클래스를 만드는 방법을 알아내는 데 도움하십시오 (2 페이지) 3 등급 (3 페이지)에 전화하십시오. 모두에게 미리 감사드립니다.
답장을 보내 주셔서 감사합니다 . 나는 CardLayout을 완전히 피하려고 노력하고있다. "모델"(코드의 간단한 기본 구조)을 만드는 것을 시작하도록 도와주십시오. 그것은 크게 도움이 될 것입니다. 저는 JAVA에서 상당히 초보자이며이 시점까지 프로그래밍을 가르쳐 왔기 때문에 동료 또는 급우로부터 획득 한 기본 프로그래밍 개념으로 간주 될 수있는 것을 전혀 알지 못합니다. 다시 감사합니다. –
왜 당신은'CardLayout'을 피하고 있습니까? – MadProgrammer
이벤트를 통해 클래스를 호출하는 방법을 배우고 싶습니다. –