package xiangce.lc.vv;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
public class MyXiangCe extends JFrame implements ActionListener,KeyListener{
JPanel jp_img;
JPanel jp_miniImg;
JPanel jp_navige;
Container con;
CardLayout cl;
GridLayout gr;
JButton jb_shang;
JButton jb_xia;
JButton jb_zuo;
JButton jb_you;
JButton jb_1,jb_2,jb_3,jb_4,jb_5,jb_6,jb_7,jb_8,jb_9;
JButton jb_21,jb_22,jb_23,jb_24,jb_25,jb_26,jb_27,jb_28,jb_29;
ImageIcon i1,i2,i3,i4,i5,i6,i7,i8,i9;
BufferedImage image;
public MyXiangCe() throws HeadlessException {
  this.setBounds(100, 200, 800, 600);
  con=this.getContentPane();//给定JFrame的内容con
  con.setLayout(null);//内容的布局为NULL
  //初始化模块
  jp_img=new JPanel();
  cl=new CardLayout();
  jp_img.setLayout(cl);//将图片显示区域设为卡片布局
  gr=new GridLayout(3,3);//定义一个三行三列的网状布局
  jp_miniImg=new JPanel();
  jp_miniImg.setLayout(gr);//将迷你图片显示区域设为网状布局
  jp_navige=new JPanel();
  jp_navige.setLayout(null);//将导航区域设为空布局
  //定义个模块的大小
  jp_img.setBounds(0,0,600,600);
  jp_miniImg.setBounds(610,15,180,180);
  jp_navige.setBounds(610,450,180,120);
  //初始化按钮
  jb_shang=new JButton("↑");
  jb_shang.addActionListener(this);//按钮监听
  jb_shang.addKeyListener(this);//键盘监听
  jb_xia=new JButton("↓");
  jb_xia.addActionListener(this);//按钮监听
  jb_xia.addKeyListener(this);//键盘监听
  jb_zuo=new JButton("←");
  jb_zuo.addActionListener(this);//按钮监听
  jb_zuo.addKeyListener(this);//键盘监听
  jb_you=new JButton("→");
  jb_you.addActionListener(this);//按钮监听
  jb_you.addKeyListener(this);//键盘监听
  jb_shang.setBounds(60, 0, 60, 60);
  jb_zuo.setBounds(0, 60, 60, 60);
  jb_xia.setBounds(60, 60, 60, 60);
  jb_you.setBounds(120, 60, 60, 60);  //添加按钮
  jp_navige.add(jb_shang);
  jp_navige.add(jb_xia);
  jp_navige.add(jb_zuo);
  jp_navige.add(jb_you);
  
  //给图片显示区域赋值
    jb_21=new JButton();
    jb_21.setIcon(new ImageIcon("bin/1.jpg"));
    jb_22=new JButton();
    jb_22.setIcon(new ImageIcon("bin/2.jpg"));
    jb_23=new JButton();
    jb_23.setIcon(new ImageIcon("bin/3.jpg"));
    jb_24=new JButton();
    jb_24.setIcon(new ImageIcon("bin/4.jpg"));
    jb_25=new JButton();
    jb_25.setIcon(new ImageIcon("bin/5.jpg"));
    jb_26=new JButton();
    jb_26.setIcon(new ImageIcon("bin/6.jpg"));
    jb_27=new JButton();
    jb_27.setIcon(new ImageIcon("bin/7.jpg"));
    jb_28=new JButton();
    jb_28.setIcon(new ImageIcon("bin/8.jpg"));
    jb_29=new JButton();
    jb_29.setIcon(new ImageIcon("bin/9.jpg"));
    jp_img.add(jb_21,"");
    jp_img.add(jb_22,"");
    jp_img.add(jb_23,"");
    jp_img.add(jb_24,"");
    jp_img.add(jb_25,"");
    jp_img.add(jb_26,"");
    jp_img.add(jb_27,"");
    jp_img.add(jb_28,"");
    jp_img.add(jb_29,"");
  
  //给迷你图片区域初始化并赋值
  i1=new ImageIcon("bin/1.jpg");
  i2=new ImageIcon("bin/2.jpg");
  i3=new ImageIcon("bin/3.jpg");
  i4=new ImageIcon("bin/4.jpg");
  i5=new ImageIcon("bin/5.jpg");
  i6=new ImageIcon("bin/6.jpg");
  i7=new ImageIcon("bin/7.JPG");
  i8=new ImageIcon("bin/8.JPG");
  i9=new ImageIcon("bin/9.JPG");
  jb_1=new JButton(i1);
  jb_1.addActionListener(this);
  jb_2=new JButton(i2);
  jb_2.addActionListener(this);
  jb_3=new JButton(i3);
  jb_3.addActionListener(this);
  jb_4=new JButton(i4);
  jb_4.addActionListener(this);
  jb_5=new JButton(i5);
  jb_5.addActionListener(this);
  jb_6=new JButton(i6);
  jb_6.addActionListener(this);
  jb_7=new JButton(i7);
  jb_7.addActionListener(this);
  jb_8=new JButton(i8);
  jb_8.addActionListener(this);
  jb_9=new JButton(i9);
  jb_9.addActionListener(this);
   
  jp_miniImg.add(jb_1);
  jp_miniImg.add(jb_2);
  jp_miniImg.add(jb_3);
  jp_miniImg.add(jb_4);
  jp_miniImg.add(jb_5);
  jp_miniImg.add(jb_6);
  jp_miniImg.add(jb_7);
  jp_miniImg.add(jb_8);
  jp_miniImg.add(jb_9); 
  
  //向内容中加模块
  con.add(jp_img);
  con.add(jp_miniImg);
  con.add(jp_navige); 
  this.setVisible(true);
}
public MyXiangCe(String arg0) throws HeadlessException {
  super(arg0);
  // TODO Auto-generated constructor stub
}
public void paint(Graphics gra) {
    
    gra.drawImage(image, 0, 0,600,600, jp_img);
    
}
public void actionPerformed(ActionEvent ae) {
  JButton jb_key=(JButton) ae.getSource();
  if(jb_key==jb_zuo)
  {
   cl.next(jp_img);   
  }else if(jb_key==jb_you)
  {
   cl.previous(jp_img);
  }else if(jb_key==jb_shang)
  {
   for(int i=0;i<3;i++)
   cl.previous(jp_img);
  }else 
  {
   cl.next(jp_img);
   for(int i=0;i<3;i++);
  }
  if(jb_key==jb_1)
  {
   try {
    image=ImageIO.read(new File("bin/1.jpg"));
   } catch (IOException e) {
    e.printStackTrace();
   }
   this.repaint();
  }
  if(jb_key==jb_2)
  {
   try {
    image=ImageIO.read(new File("bin/2.jpg"));
   } catch (IOException e) {
    e.printStackTrace();
   }
   this.repaint();
  }
  if(jb_key==jb_3)
  {
   try {
    image=ImageIO.read(new File("bin/3.jpg"));
   } catch (IOException e) {
    e.printStackTrace();
   }
   this.repaint();
  }
  if(jb_key==jb_4)
  {
   try {
    image=ImageIO.read(new File("bin/4.jpg"));
   } catch (IOException e) {
    e.printStackTrace();
   }
   this.repaint();
  }
  if(jb_key==jb_5)
  {
   try {
    image=ImageIO.read(new File("bin/5.jpg"));
   } catch (IOException e) {
    e.printStackTrace();
   }
   this.repaint();
  }
  if(jb_key==jb_6)
  {
   try {
    image=ImageIO.read(new File("bin/6.jpg"));
   } catch (IOException e) {
    e.printStackTrace();
   }
   this.repaint();
  }
  if(jb_key==jb_7)
  {
   try {
    image=ImageIO.read(new File("bin/7.jpg"));
   } catch (IOException e) {
    e.printStackTrace();
   }
   this.repaint();
  }
  if(jb_key==jb_8)
  {
   try {
    image=ImageIO.read(new File("bin/8.jpg"));
   } catch (IOException e) {
    e.printStackTrace();
   }
   this.repaint();
  }
  if(jb_key==jb_9)
  {
   try {
    image=ImageIO.read(new File("bin/9.jpg"));
   } catch (IOException e) {
    e.printStackTrace();
   }
   this.repaint();
  } 
}
public void keyPressed(KeyEvent e) {
  int a=e.getKeyCode();
  if(a==KeyEvent.VK_LEFT)
  {
   cl.previous(jp_img);
   
  }else if(a==KeyEvent.VK_RIGHT)
  {
   cl.next(jp_img);
   
  }else if(a==KeyEvent.VK_DOWN)
  {
   for(int i=0;i<3;i++)
   {
    cl.next(jp_img);
    
   }   
  }else if(a==KeyEvent.VK_UP)
  {
   for(int i=0;i<3;i++)
   {
    cl.previous(jp_img);
    
   } 
  } 
}
public void keyReleased(KeyEvent e) {
  // TODO Auto-generated method stub 
}
public void keyTyped(KeyEvent e) {
  // TODO Auto-generated method stub

}
jp_img和jp_miniimg的图片显示时会冲突很无语