62,614
社区成员
发帖
与我相关
我的任务
分享
package ql.wims;
import quanwen.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
import java.sql.*;
import sun.io.*;
import java.net.*;
import java.beans.*;
import javax.swing.table.*;
public class SBST201 extends JPanel{
JScrollPane spPane=new JScrollPane();
public JTextArea taContents=new JTextArea();
JButton btnOK=new JButton();
SBSBusObject bo=new SBSBusObject();
public LocalLang ll;
JFileChooser file=new JFileChooser();
TextPreviewer txtPreviewer=new TextPreviewer();
TxtPreviewPanel txtPreviewPanel=new TxtPreviewPanel();
String userID="";
/**
* 该面板上的某些组件必须根据用户权限设定,因此,必须在构造函数中
* 引入用户的ID号
*/
public SBST201(String userID){
doInit();
}
private void doInit(){
btnOK.setText(ll.getValue("T201.gui.ok"));
btnOK.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(MouseEvent e) {
btnOK_mouseClicked();
}
});
setLayout(new BorderLayout());
add(pnl1,BorderLayout.NORTH);
add(spPane,BorderLayout.CENTER);
}
/**
* 从文本文件中获取需要的内容
*/
public void btnOK_mouseClicked(){
file.setAccessory(txtPreviewPanel);
file.setFileFilter(new SimpleFileFilter("txt",
ll.getValue("T201.dialog.fileType")));
file.setCurrentDirectory(new File(ll.getValue("T201.dialog.fileRoot")));
file.addPropertyChangeListener(new PropertyChangeListener()
{
public void propertyChange(PropertyChangeEvent e)
{
if (e.getPropertyName().equals(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY))
{
txtPreviewer.configure((File)e.getNewValue());
}
}
});
int state=file.showOpenDialog(null);
File f=file.getSelectedFile();
if((f!=null)&&(state==file.APPROVE_OPTION))
{
try
{
tfContents.setText(f.getPath());
}
catch(Exception ex){}
}
else
{
tfContents.setText("c:\\1.txt");
}
try
{
taContents.setText("");
BufferedInputStream bin1=new BufferedInputStream(new FileInputStream(f));
BufferedReader br=new BufferedReader(new InputStreamReader(bin1));
String s="";
String firstLine="";
int i=0;
while((s=br.readLine())!=null){
if (i==0){
firstLine=s;
}else{
taContents.append(s+""+(char)0x0a+(char)0x0d);
}
i++;
}
taContents.setCaretPosition(0);
tfTitle.setText(firstLine);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
//---------------------------------------------------
//与父调用者之间的接口
//---------------------------------------------------
public static void main(String[] args){
SBST201 panel=new SBST201("00000000000000000000");
JDialog window=new JDialog((Frame)null,"测试窗口",true);
window.getContentPane().add(panel,BorderLayout.CENTER);
window.addWindowListener(new MyWindow());
window.setSize(600,450);
window.show();
}
//文本文件可访问组件
class TxtPreviewPanel extends JPanel
{
public TxtPreviewPanel()
{
//获取语言文件
INIOperate ini=new INIOperate(new File("c:/upload/ini/"+"SBS.ini"),20," ;");
String language="c:/upload/ini/"+"Lang_"+ini.getItem("语言/language")+".txt";
LocalLang ll=new LocalLang(language);
JLabel label=new JLabel(ll.getValue("T201.dialog.txtPreview"),SwingConstants.CENTER);
setPreferredSize(new Dimension(300,0));
setBorder(BorderFactory.createEtchedBorder());
setLayout(new BorderLayout());
label.setBorder(BorderFactory.createEtchedBorder());
//add(label,BorderLayout.NORTH);
add(txtPreviewer,BorderLayout.CENTER);
}
}
//文本文件预览类
class TextPreviewer extends JComponent
{
private JTextArea textArea=new JTextArea();
private JScrollPane scrollPane=new JScrollPane(textArea);
public TextPreviewer()
{
textArea.setBackground(new Color(235,255,235));
textArea.setEditable(false);
textArea.setLineWrap(true);
setBorder(BorderFactory.createEtchedBorder());
setLayout(new BorderLayout());
add(scrollPane,BorderLayout.CENTER);
}
public void configure(File file)
{
textArea.setText(contentsOfFile(file));
textArea.setCaretPosition(0);
}
public String contentsOfFile(File file){
String s="";
byte[] buff=new byte[50000];
byte[] b=new byte[1];
//取前四行
try
{
BufferedInputStream bin=
new BufferedInputStream(new FileInputStream(file));
int nch;
int hang=0;
int totalBytes=0;
while((hang<3)&&(nch=bin.read(b))!=-1)
{
buff[totalBytes++]=b[0];
if (b[0]==0x0d)
{
s=s+new String(buff,0,totalBytes);
hang++;
totalBytes=0;
}
}
bin.close();
}
catch(Exception ex)
{
s="Could not load file";
}
return s;
}
}
}