
메인 프레임 (index 역할)
Page 배열을 활용한 화면 전환
public class ShopMain extends JFrame {
Page[] pages;
JPanel p_container;
public ShopMain() {
createPage();
showPage(Config.MAIN_PAGE);
}
public void createPage() {
pages = new Page[1];
pages[Config.MAIN_PAGE] = new MainPage();
for (int i = 0; i < pages.length; i++) {
p_container.add(pages[i]);
}
}
public void showPage(int target) {
for (int i = 0; i < pages.length; i++) {
pages[i].setVisible((i == target)? true : false);
}
}
}
메인페이지
메인 배너(비주얼 영역)에 이미지 그리기
public class MainPage extends Page {
JPanel p_visual;
JPanel p_content;
ImageUtil imageUtil = new ImageUtil();
Image img;
public MainPage() {
img = imageUtil.getImage("images/패션.jpg", Config.MAIN_VISUAL_WIDTH, Config.MAIN_VISUAL_HEIGHT);
p_visual = new JPanel() {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawImage(img, 0, 0, Config.MAIN_VISUAL_WIDTH, Config.MAIN_VISUAL_HEIGHT, p_visual);
}
};
p_content = new JPanel(new FlowLayout(FlowLayout.LEFT, 0, 0));
p_visual.setPreferredSize(new Dimension(Config.MAIN_VISUAL_WIDTH, Config.MAIN_VISUAL_HEIGHT));
p_content.setPreferredSize(new Dimension(Config.MAIN_VISUAL_WIDTH, 410));
setPreferredSize(new Dimension(Config.SHOPMAIN_WIDTH, Config.SHOPMAIN_HEIGHT - Config.UTIL_HEIGHT));
p_visual.setBackground(Color.CYAN);
p_content.setBackground(Color.RED);
add(p_visual);
add(p_content);
setVisible(true);
}
}