《猜猜看》首次測試

    說真的,我真的是打算放棄java了的。但今天不想繼續“無所事事”,琢磨了老師給的圖片顯示的代碼,加上我昨天的頁面,說真的,小測試的成功讓我小激動,呵呵!我可以說對java一竅不通,對於實習要求的猜猜看我覺得結合自己的能力能實現多少是多少,沒資格再要求高分,不放棄它就是最好的了(重拾希望的感覺真好) 。

    說真的,全靠自己,能做到這我覺得是最大的極限了,明天還有課,我會繼續琢磨,把死板的選項那裏變得靈活,我需要一些參考實例或是代碼,希望老師能提供點幫助。

    然後是小程序頁面設計特別不滿意,若可以的話把佈局改變下……

import java.awt.*;
import java.applet.*;
import java.awt.event.*;

import javax.swing.AbstractButton;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileFilter;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;

class myFileFilter implements FileFilter{  
     
    @Override  
    public boolean accept(File pathname) {  
        String filename = pathname.getName().toLowerCase();  
        if(filename.contains(".jpg")){  
            return false;  
        }else{  
            return true;  
        }  
    }  
} 

public class Te3 extends Applet implements ItemListener, ActionListener {
	
		// TODO Auto-generated constructor stub
	
	//Frame f=new Frame("測試無數次");
    private static final long serialVersionUID = 1L;
    
    JButton open=null;
    JTextField jtfPath = null;
    
    JLabel jlbImg = null;
    JButton btnNext = null;
    
    String strPath = "";    //文件夾路徑
    String strFileName = "";    //文件名稱
    
    File[] fileArray;   // 文件夾下所有文件
    int NUM_IMG = 0;    // 文件總數目
    int index   = 0;    // 當前文件的序號
	
    public static void main(String[] args) {
        new Te3();
    }
	JButton b1,b2;
	JLabel p1=new JLabel();
	JPanel p2=new JPanel();
	JPanel p3=new JPanel();
	
	TextArea ta=new TextArea(2,30);
	TextField tf1=new TextField(16),   tf2=new TextField(14);
    
	CheckboxGroup chk=new CheckboxGroup();
	Checkbox cx1=new Checkbox("(A)金木研",chk,false);
	Checkbox cx2=new Checkbox("(B)西尾錦",chk,false);
	Checkbox cx3=new Checkbox("(C)尼克",chk,false);
	Checkbox cx4=new Checkbox("(D)小丑組織",chk,false);
	//String text="請根據所給圖片任務選擇對應其的姓名";


	public void init(){
		b1=new JButton("選擇目錄:");
		b2=new JButton("下一張圖片顯示:");
		String text="請根據所給圖片任務選擇對應其的姓名";
		
		ta.setText(text);
		p3.add(ta);	
	    p3.add(cx1);
	    cx1.addItemListener(this);
	    p3.add(cx2);
	    cx2.addItemListener(this);
	    p3.add(cx3);
	    cx3.addItemListener(this);
	    p3. add(cx4);
	    cx4.addItemListener(this);
	    p3. add(tf2);
	    p2.add(b1);
	    b1.addActionListener(this);// 添加監聽
	    p2. add(tf1);
	    tf1.addActionListener(this);// 添加監聽
	    p2.add(b2);
	    b2.addActionListener(this);// 添加監聽

        // 添加顯示Image的JLabel控件
	    p1 = new JLabel();
        p1.setBackground(Color.RED);
        p1.setBounds(800,100, 900, 500);
        this.add(p1);
        
        // 設置JFrame的大小,可顯示,默認關閉按鈕
        this.setBounds(300, 300, 300, 300);
        this.setVisible(true);
       // this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
    
		add(p2, BorderLayout.CENTER);
		add(p3, BorderLayout.WEST);
		
		setLayout(new BorderLayout(3,9));
		add("West", p3);
		add("Center",p2);
		//add("Center",p1);
		setSize(500,450);
		setVisible(true);
		
	}
	/**
	 * @param args
	 */
	@Override
	 public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        
        //多個組件需要監聽的情況下,事件響應的編碼方式      
        if(e.getSource()==b1){    //如果是open按鈕
            JFileChooser jfc=new JFileChooser();
            //jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );
            jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
            jfc.showDialog(new JLabel(), "選擇");
            File file=jfc.getSelectedFile();
            
            if(file.isDirectory()){
                System.out.println("文件夾:"+file.getAbsolutePath());
                
            }else if(file.isFile()){
                System.out.println("文件:"+file.getAbsolutePath());
            }
            System.out.println(jfc.getSelectedFile().getName());
            
            // 把文件路徑顯示在文本框中
            tf1.setText(file.getAbsolutePath());
            //jlbImg.setIcon(new ImageIcon(file.getAbsolutePath()));
            
            // 獲取文件路徑 與文件名
            strPath = file.getAbsolutePath();
            strFileName = jfc.getSelectedFile().getName();
            
            if(file!=null && file.isDirectory()){
                // 參考: java中File.listFiles(FileFilter) FileFilter的使用 
                //  http://zhouzaibao.iteye.com/blog/347557 ;
                
                // 獲取文件夾下所有的文件
                fileArray = file.listFiles();
                NUM_IMG = fileArray.length;
            }
            
        }
        
        if(e.getSource()==b2){ //如果是next按鈕
            String strTmp = fileArray[index].toString();
            index++;
            if(index==NUM_IMG)
                index = 0;
            ((JLabel) p1).setIcon(new ImageIcon(strTmp));
        }   }    
    

	public void itemStateChanged(ItemEvent e) {
		// TODO Auto-generated method stub
		if(e.getItemSelectable()==cx1)
			tf2.setText("喲西,猜對!");
		else tf2.setText("咦,It's worry!");
	}
	}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章