怎么在Jpanel的按钮stop里加入响应退出当前frame创建个新的frame

bsky 发布于 2015/10/14 18:55
阅读 291
收藏 0

解读下一代网络:算力网络正从理想照进现实!>>>

package gtest;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Panel;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Random;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.event.AncestorListener;

public class GPanel extends JPanel implements KeyListener, ActionListener {
 
ImageIcon image1=new ImageIcon("src/gtest/2.jpg");
ImageIcon image0=new ImageIcon("src/gtest/1.jpg");
ImageIcon image2=new ImageIcon("src/gtest/3.jpg");
ImageIcon image3=new ImageIcon("src/gtest/4.jpg");
ImageIcon image4=new ImageIcon("src/gtest/5.jpg");
ImageIcon image5=new ImageIcon("src/gtest/6.jpg");
ImageIcon image6=new ImageIcon("src/gtest/7.jpg");
ImageIcon image7=new ImageIcon("src/gtest/8.jpg");
ImageIcon image8=new ImageIcon("src/gtest/20150711_180322_030139_冰雪长城_sky贝少.jpg");

int step=0;
static int n;Boolean p=false;
Image ima[]=new Image[9];
{
ima[0]=image0.getImage();
ima[1]=image1.getImage();
ima[2]=image2.getImage();
ima[3]=image3.getImage();ima[4]=image4.getImage();
ima[5]=image5.getImage();
ima[6]=image6.getImage();
ima[7]=image7.getImage();

}
Image amg=image8.getImage();
Random r=new Random();boolean t=false;
Dirs a[]=new Dirs[8];
{for(int i=0;i<8;i++)
 a[i]=new Dirs();
}
int b[]=new int[3];
Dirs c=new Dirs();
JButton start=new JButton("开始");
JButton stop=new JButton("退出");
public  GPanel()

{
b[0]=r.nextInt(2);
 for(int i=1;i<3;i++)
 {b[i]=r.nextInt(3);
 for(int j=0;j<i;j++)
  {if(b[i]==b[j])
  {i--;}}}
 int i=0;
 while(i<8)
 {
  for(int j=0;j<=2;j++)
   {for(int k=0;k<=2;k++)
   {if(j==2&&k==2)
    break;
    a[i].setX(a[i].getX()+b[j]);
   a[i].setY(a[i].getY()+b[k]);
   i++;}}};
c.setX(c.getX()+b[2]);c.setY(c.getY()+b[2]);
 this.setLayout(new FlowLayout(FlowLayout.LEFT));
 this.add(start);
 this.add(stop);
 start.addActionListener(this);
 stop.addActionListener(this);
 this.addKeyListener(this);
 }

public void paintComponent(Graphics g)
 {
 super.paintComponent(g);
 
  
  if(a[0].getX()==0&&a[0].getY()==0&&a[1].getX()==1&&a[1].getY()==0&&a[2].getX()==2&&a[2].getY()==0&&a[3].getX()==0&&a[3].getY()==1)
  {if(a[4].getX()==1&&a[4].getY()==1&&a[5].getX()==2&&a[5].getY()==1&&a[6].getX()==0&&a[6].getY()==2&&a[7].getX()==1&&a[7].getY()==2)
 p=true;}
  g.setColor(new Color(200,100,230));
  g.drawString("你目前走了"+step+"步",200,30);
  g.drawRect(0,50,300,300);
  g.drawImage(amg,0,0,400,45,this);
  g.drawImage(amg,300,45,100,300,this);
  for(int i=0;i<8;i++)
  g.drawImage(ima[i],0+a[i].getX()*100,50+a[i].getY()*100,100,100,this);
  
 }
 public static void main(String[] args) {
  
 }
 public void moveup()
 {int temp;
  for(int i=0;i<8;i++)
  if(a[i].getX()==c.getX()&&(c.getY()-a[i].getY())==-1)
  {temp=a[i].getX();
   a[i].setX(c.getX());
   c.setX(temp);
   temp=a[i].getY();
   a[i].setY(c.getY());
   c.setY(temp);
   step++;
   break;
  }
 repaint();
  }
 
 public void movedown()
 {int temp;
  for(int i=0;i<8;i++)
  if(a[i].getX()==c.getX()&&(c.getY()-a[i].getY())==1)
  {temp=a[i].getX();
   a[i].setX(c.getX());
   c.setX(temp);
   temp=a[i].getY();
   a[i].setY(c.getY());
   c.setY(temp);
   step++;
   break;
  }
 repaint();
  }
 public void moveleft()
 {int temp;
  for(int i=0;i<8;i++)
  if((a[i].getX()-c.getX())==1&&c.getY()==a[i].getY())
  {temp=a[i].getX();
   a[i].setX(c.getX());
   c.setX(temp);
   temp=a[i].getY();
   a[i].setY(c.getY());
   c.setY(temp);
   step++;
   break;
  }
 repaint();
  }
 public void moveright()
 {int temp;
  for(int i=0;i<8;i++)
  if((a[i].getX()-c.getX())==-1&&c.getY()==a[i].getY())
  {temp=a[i].getX();
   a[i].setX(c.getX());
   c.setX(temp);
   temp=a[i].getY();
   a[i].setY(c.getY());
   c.setY(temp);
   step++;
   break;
  }
  
 repaint();
  }
 public void keyTyped(KeyEvent e) {
  
  
 }
 public void keyPressed(KeyEvent e) {
  switch(e.getKeyCode())
  {case KeyEvent.VK_UP:
   moveup();break;
  case KeyEvent.VK_DOWN:
   movedown(); break;
  case KeyEvent.VK_LEFT:
   moveleft();break;
  case KeyEvent.VK_RIGHT:
   moveright();break;
   }
 }
 
 public void keyReleased(KeyEvent e) {
  
 }
 
 public void actionPerformed(ActionEvent e) {
  if(e.getSource().equals(start))
  {t=true;repaint();}
  requestFocus(true);
  
 }
 
}

加载中
返回顶部
顶部