首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一个关于JFileChooser的有关问题

2012-02-05 
一个关于JFileChooser的问题今天试着写了个Swing,但是JFileChooser始终都报一个错...大虾们帮忙看看..impo

一个关于JFileChooser的问题
今天试着写了个Swing,但是JFileChooser始终都报一个错...大虾们帮忙看看..

import   java.awt.Component;
import   java.awt.FlowLayout;
import   java.awt.event.ActionEvent;
import   java.awt.event.ActionListener;
import   java.awt.event.KeyEvent;
import   java.io.File;

import   javax.swing.JButton;
import   javax.swing.JFileChooser;
import   javax.swing.JPanel;
import   javax.swing.JTextField;

public   class   CreateUI{

static   String   displayTxt   =   " ";
JTextField   tf   =   null;
public   Component   createCom(){
JPanel   panel   =   new   JPanel();
tf   =   new   JTextField();
tf.setColumns(20);
JButton   Fchoose   =   new   JButton( "Choose   Directory ");
Fchoose.setMnemonic(KeyEvent.VK_D);
ActionListener   chooser   =   new   ActionListener(){

public   void   actionPerformed(ActionEvent   arg0)   {

String   txt   =   tf.getText();
JFileChooser   jfc   =   null;
if(txt   !=   null   &&   txt.length()!=0){
File   file   =   new   File(txt);
if(!file.exists()){
txt   =   " ";
}
}else{
txt   =   " ";
}
if(txt.length()   ==0){
try{
jfc   =   new   JFileChooser( "c:\\ ");
}catch(Exception   e){
System.out.println( "这儿报错了..... ");
e.printStackTrace();
}
}else{
jfc   =   new   JFileChooser(txt);
}
jfc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int   rtnVal   =   jfc.showOpenDialog(null);
if(rtnVal   ==   JFileChooser.APPROVE_OPTION){
tf.setText(jfc.getSelectedFile().getAbsolutePath());
}

}

};
Fchoose.addActionListener(chooser);
JButton   jb1   =   new   JButton( "Convert   HTM   To   txt ");
jb1.setMnemonic(KeyEvent.VK_H);
jb1.addActionListener(new   ActionListener(){
public   void   actionPerformed(ActionEvent   e){
boolean   flag   =   true;
String   txt   =   " ";
if(tf.getText()   !=   null   &&   tf.getText().length()!=0){
txt   =     new   String(tf.getText());
File   file   =   new   File(txt);
if(!file.exists()   ||   !file.isDirectory()){
flag   =   false;
}
}
if(flag){
HtmConvert   convert   =   new   HtmConvert();
displayTxt   =   convert.convert(txt);
}
}


});
JButton   jb2   =   new   JButton( "Conver   ansi   to   UTF-8 ");
jb2.setMnemonic(KeyEvent.VK_A);
ActionListener   ac1   =   new   ActionListener(){

public   void   actionPerformed(ActionEvent   arg0)   {
boolean   flag   =   true;
String   txt   =   " ";
if(tf.getText()   !=   null   &&   tf.getText().length()!=0){
txt   =     new   String(tf.getText());
File   file   =   new   File(txt);


if(!file.exists()   ||   !file.isDirectory()){
flag   =   false;
}
}
if(flag){
AnsiToUTF   convert   =   new   AnsiToUTF();
displayTxt   =   convert.convert(txt);
}
}

};
jb2.addActionListener(ac1);
panel.setLayout(new   FlowLayout());
panel.add(tf);
panel.add(Fchoose);
panel.add(jb1);
panel.add(jb2);
return   panel;
}
}

Main函数:
public   static   void   main(String[]   args)   {
JFrame   jf   =   new   JFrame( "Convert ");
CreateUI   create   =   new   CreateUI();
Component   comp   =   create.createCom();
jf.getContentPane().add(comp);
jf.pack();
jf.setVisible(true);
jf.addWindowListener(new   WindowAdapter(){
public   void   windowClosing(WindowEvent   arg0)   {
System.exit(0);
}
});
}

[解决办法]
我又帮你看了一遍。
把这几句注释掉
//AnsiToUTF convert = new AnsiToUTF();
//displayTxt = convert.convert(txt);、
//HtmConvert convert = new HtmConvert();
//displayTxt = convert.convert(txt);
可以运行,我是在没办法榜你判断。要不你就提供其他的代码。。
[解决办法]
你设置了皮肤的吗?是不是这里出的问题。
这个错应该是出在JDK内部,可能是其它地方引起的,最有可能的地方可能就是设置UI Style了。

热点排行