說真的,我真的是打算放棄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!");
}
}