我使用JFileChooser
打开了一个文件。如果我打开了一个文件,它会第一次打开,如果我第二次打开同一个文件,它也会在新标签页中打开。我想只打开一个文件一次。
这是我的代码,
final JFileChooser jc = new JFileChooser();
int returnVal= jc.showOpenDialog(Open.this);
String title;
String sts;
File file=null;
if(returnVal == JFileChooser.APPROVE_OPTION)
file = jc.getSelectedFile();
JTextArea text = new JTextArea();
if (jc.getSelectedFile()!= null) {
tx = new JTextArea();
BufferedReader br = null;
StringBuffer str = new StringBuffer("");
StringBuffer st = new StringBuffer("");
try {
br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
str.append(line + "\n");
}
}
catch (IOException ex) {
Logger.getLogger(Open.class.getName()).log(Level.SEVERE, null, ex);
}
String t = str.toString();
final JInternalFrame internalFrame = new JInternalFrame("",true,true);
title=file.getName();
sts=file.getPath();
tx.setFont(new java.awt.Font("Miriam Fixed", 0, 13));
//tx.setLineWrap(true);
internalFrame.add(tx);
i+=1;
internalFrame.setName("Doc "+i);
JScrollPane scrollpane=new JScrollPane(tx);
internalFrame.setTitle(title);
tp.add(internalFrame);
try{
tp.setSelectedIndex(i-1);
}
catch(IndexOutOfBoundsException ioe){
}
internalFrame.add(scrollpane);
internalFrame.setVisible(true);
internalFrame.addInternalFrameListener(new InternalFrameAdapter() {
@Override
public void internalFrameClosing(InternalFrameEvent e) {
tp.remove(internalFrame);
}
});
tx.setText(t);
try {
br.close();
}
catch (IOException ex) {
Logger.getLogger(Open.class.getName()).log(Level.SEVERE, null, ex);
}
}
由于
答案 0 :(得分:0)
首先导入java.util。*然后ArrayList<String> = new ArrayList<String>()
存储临时文件名String tempfile="get current filename"
存储临时值以检查列表int i=0
中是否存在文件,并检查数组{{1}中是否存在文件如果文件存在于列表中,则for(String s:) al) { if(s.equals(tempfile)) i++;}
否则显示消息“文件已打开”。如果您关闭选项卡,则可以使用删除方法if(i==0) al.add("tempfile");