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