⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainframe.java

📁 Java写的拼图游戏
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
            layout.createParallelGroup(org.jdesktop.layout.GroupLayout.LEADING)
            .add(layout.createSequentialGroup()
                .addContainerGap()
                .add(jPanel1, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE, org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, org.jdesktop.layout.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(org.jdesktop.layout.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
// TODO 将在此处添加您的处理代码:
        showIMG();
    }//GEN-LAST:event_jMenuItem3ActionPerformed
    private void showIMG(){
        if(image!=null){
            if(Myshow.isVisible())
                Myshow.setVisible(false);
            else
                Myshow.setVisible(true);
        }
        else 
            return;
    }
    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
// TODO 将在此处添加您的处理代码:
        openFile();
    }//GEN-LAST:event_jMenuItem1ActionPerformed
     private void openFile(){
          JFileChooser chooser=new JFileChooser();
          
         ExampleFileFilter filter = new ExampleFileFilter();
          
         filter.addExtension("jpg");
         filter.setDescription("jpg & JPEG");
         chooser.setFileFilter(filter);

         chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);

         int returnVal = chooser.showOpenDialog(this);
	 if(returnVal==chooser.APPROVE_OPTION)
         {
            File file=chooser.getSelectedFile();
            String tempPath=file.getAbsolutePath();//路径名
            image=Toolkit.getDefaultToolkit().getImage(tempPath);
            MediaTracker mt=new MediaTracker(this);
            mt.addImage(image,0);
            try	{
		    mt.waitForAll();
	    }catch(InterruptedException e){
                e.printStackTrace();
            }      
            
            mark=0;
            pre=mark;
            cur=mark;
            Graphics gb=buf.getGraphics();
            gb.drawImage(image,0,0,210,210,this);    
           
            if(image!=null)
               Myshow=new showImage(buf);
            
            drawmap(buf);
	    System.out.println(file.getAbsolutePath());
	 }else 
             return ;
    }    
     private void drawmap(Image image){
         //初始化全部icon
         for(int global=0;global<9;global++)
            icon[global]=createImage(70,70);
         //生成特定块。空块标识!
          Graphics gg=icon[0].getGraphics();
          gg.setColor(Color.WHITE);
          gg.fillRect(0,0,70,70);
          
         for(int i0=1;i0<3;i0++){
             Graphics g=icon[i0].getGraphics();
             g.drawImage(image,0,0,70,70,70*i0,0,70*i0+70,70,this);
         }
         for(int i1=3;i1<6;i1++){
             Graphics g=icon[i1].getGraphics();
             g.drawImage(image,0,0,70,70,70*(i1-3),70,70*(i1-3)+70,140,this);
         }
         for(int i=6;i<9;i++){
             Graphics g=icon[i].getGraphics();
             g.drawImage(image,0,0,70,70,70*(i-6),140,70*(i-6)+70,210,this);
         }
         repaintLabel(icon);
     }
     private void repaintLabel(Image[] icon){
       L0.setIcon(new ImageIcon(icon[0]));
       L1.setIcon(new ImageIcon(icon[5]));
       
       L2.setIcon(new ImageIcon(icon[8]));
       L3.setIcon(new ImageIcon(icon[3]));
       L4.setIcon(new ImageIcon(icon[1]));
       L5.setIcon(new ImageIcon(icon[7]));
       L6.setIcon(new ImageIcon(icon[4]));
       L7.setIcon(new ImageIcon(icon[6]));
       L8.setIcon(new ImageIcon(icon[2]));
      
     }
    private void initHashtable(){
        ht.put(0,L0);
        ht.put(1,L1);
        ht.put(2,L2);
        ht.put(3,L3);
        ht.put(4,L4);
        ht.put(5,L5);
        ht.put(6,L6);
        ht.put(7,L7);
        ht.put(8,L8);
        SwingUtilities.updateComponentTreeUI(this);
    }
    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
// TODO 将在此处添加您的处理代码:
        System.exit(0);
    }//GEN-LAST:event_jMenuItem2ActionPerformed
    
     private void setLookAndFeel(){
         try{
		UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel");
		SwingUtilities.updateComponentTreeUI(this);
		 }catch(Exception e){System.out.println(e.getMessage());}
    }
    private void formKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_formKeyPressed
// TODO 将在此处添加您的处理代码:
        keyPressed(evt);
    }//GEN-LAST:event_formKeyPressed
    public void keyPressed(KeyEvent evt){
       int key = evt.getKeyCode();
       System.out.println(key);
		pre=cur;
		switch(key)
		{
		case 27:
			System.exit(0);
			break;
                case 10:
                       showIMG();
                       break; 
		case KeyEvent.VK_LEFT:
			cur-=1;
			break;
		case KeyEvent.VK_RIGHT:
			cur=cur+1;
			break;
		case KeyEvent.VK_UP:
			cur-=3;
			break;
		case KeyEvent.VK_DOWN:
			cur+=3;
			break;
		}
		if(cur<0||cur>data.length-1)
			cur=pre;
		swapData(data,pre,cur);
                //System.out.println(((JLabel)ht.get(pre)).getText());
                swap((JLabel)ht.get(pre),(JLabel)ht.get(cur));
    }
    private void swap(JLabel a,JLabel b){                                
       ImageIcon temp=(ImageIcon)a.getIcon();
       a.setIcon(b.getIcon());
       b.setIcon(temp);
    }
    public void swapData(int[] data,int a,int b)
	{
		int t=data[a];
		data[a]=data[b];
		data[b]=t;
		repaint();
	}
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new mainFrame().setVisible(true);
            }
        });
    }
    
    // 变量声明 - 不进行修改//GEN-BEGIN:variables
    private javax.swing.JLabel L0;
    private javax.swing.JLabel L1;
    private javax.swing.JLabel L2;
    private javax.swing.JLabel L3;
    private javax.swing.JLabel L4;
    private javax.swing.JLabel L5;
    private javax.swing.JLabel L6;
    private javax.swing.JLabel L7;
    private javax.swing.JLabel L8;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JPanel jPanel1;
    // 变量声明结束//GEN-END:variables
    
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -