你需要的方法在按钮事件方法中,有问题追问,good luck!
通过选中文件获得绝对路径,点确定读取文件
import java.awt.TextArea
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.io.BufferedReader
import java.io.File
import java.io.FileInputStream
import java.io.FileNotFoundException
import java.io.IOException
import java.io.InputStreamReader
import java.io.UnsupportedEncodingException
import javax.swing.Icon
import javax.swing.ImageIcon
import javax.swing.JButton
import javax.swing.JFileChooser
import javax.swing.JFrame
import javax.swing.JLabel
import javax.swing.JOptionPane
import javax.swing.JPanel
import javax.swing.JScrollPane
import javax.swing.JTextField
public class Test2 extends JFrame implements ActionListener {
JButton button
JButton Select
JButton btnOK
JTextField textfield
JPanel p
JFileChooser fc = new JFileChooser()
TextArea area
public Test2() {
p = new JPanel()// 建立一个面板
this.getContentPane().add(p)// 把面板添加到框架
p.add(new JButton("文本"))// 把一个文本按钮添加到面板
textfield = new JTextField(10)
p.add(textfield)// 把一个文本框添加到面板
Select = new JButton("浏览")
p.add(Select)// 把一个浏览按钮添加到面板
Select.addActionListener(this)
btnOK = new JButton("确册闷定")
p.add(btnOK)// 把一个确定按钮添加到面板
btnOK.addActionListener(this)
}
public void actionPerformed(ActionEvent e) {
// 当按下选择按钮,打开一个文件选择,首毁文本框显示文件路径
if (e.getSource() == Select) {
int intRetVal = fc.showOpenDialog(this)
if (intRetVal == JFileChooser.APPROVE_OPTION) {
textfield.setText(fc.getSelectedFile().getPath())
}
} else if (e.getSource() == btnOK) { // 当按下确定按钮,生成一个新框架,者姿备框架里面有一个文本域,显示打开文件的内容
JFrame f = new JFrame()
f.setSize(400, 400)
f.setLocationRelativeTo(null)
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
String extensionName = getExtensionName(textfield.getText())
if ("txt".equals(extensionName)) {
f.setTitle("显示文本")
area = new TextArea()
//获取文本值
String text = readTxt(textfield.getText())
area.setText(text)
f.add(area)
f.setVisible(true)
} else if ("jpg".equals(extensionName) || "png".equals(extensionName) || "gif".equals(extensionName)) {
f.setTitle("显示图片")
Icon img = new ImageIcon(textfield.getText())
JLabel label = new JLabel(img)
//添加滚动条
JScrollPane jsp = new JScrollPane(label)
f.add(jsp)
f.setVisible(true)
} else {
JOptionPane.showMessageDialog(null, "请选择txt/jpg/png/gif格式的文件!")
}
}
}
/**
* @Description:获取文件后缀名
* @param filename
* @return
* @throws
*/
private String getExtensionName(String filename) {
if ((filename != null) &&(filename.length() >0)) {
int dot = filename.lastIndexOf('.')
if ((dot >-1) &&(dot <(filename.length() - 1))) {
return filename.substring(dot + 1)
}
}
return filename
}
/**
* @Description:读取文件
* @param path - 文件地址
* @return
* @throws
*/
private String readTxt(String path) {
if (path == null || "".equals(path)) {
return ""
}
StringBuffer sb = new StringBuffer()
File file = new File(path)
InputStreamReader read = null
BufferedReader reader = null
try {
read = new InputStreamReader(new FileInputStream(file), "gb2312")
reader = new BufferedReader(read)
String line
while ((line = reader.readLine()) != null) {
sb.append(line)
sb.append("\n")
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace()
} catch (FileNotFoundException e) {
e.printStackTrace()
} catch (IOException e) {
e.printStackTrace()
} finally {
if (read != null) {
try {
read.close()
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
if (reader != null) {
try {
reader.close()
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace()
}
}
}
return sb.toString()
}
public static void main(String[] args) {
Test2 frame = new Test2()
frame.setSize(400, 400)
frame.setLocationRelativeTo(null)
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
frame.setVisible(true)
}
}
完整的java代码如下:import javax.swing.*
import java.awt.event.*
public class FileChooserDemo extends JFrame implements ActionListener {
// 创建一棚液指个按钮,用于打开文件选择框
private JButton openButton
// 创建一个文件选择框对象
private JFileChooser fileChooser
public FileChooserDemo() {
// 设置窗口标题和大小
super("埋核文件选择框示例")
setSize(300, 200)
// 设置窗口布局为流式布局
setLayout(new FlowLayout())
// 初始化按钮,并添加动作监听器
openButton = new JButton("打开文件")
openButton.addActionListener(this)
// 初始化文件选择框,并设置为系统链配样式[^1^][2]
fileChooser = new JFileChooser()
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY)
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())
SwingUtilities.updateComponentTreeUI(fileChooser)
} catch (Exception e) {
e.printStackTrace()
}
// 将按钮添加到窗口中
add(openButton)
// 设置窗口可见和关闭 *** 作
setVisible(true)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == openButton) {
// 当点击打开文件按钮时,d出文件选择框[^2^][1]
int result = fileChooser.showOpenDialog(this)
if (result == JFileChooser.APPROVE_OPTION) {
// 当用户选择了一个文件时,获取并显示文件路径
String filePath = fileChooser.getSelectedFile().getPath()
JOptionPane.showMessageDialog(this, "你选择了:" + filePath)
}
}
}
public static void main(String[] args) {
new FileChooserDemo()
}
}
import java.io.*import java.awt.*
import javax.swing.*
import java.awt.event.*
public 并洞class YFileChooser implements ActionListener{
JFrame frame=new JFrame("文件选择器实例")
JTabbedPane tabPane=new JTabbedPane()//选项卡布局
Container con=new Container()//布局1
Container con1=new Container()//布局2
JLabel label1=new JLabel("选择目录")
JLabel label2=new JLabel("选择文件")
JTextField text1=new JTextField()
JTextField text2=new JTextField()
JButton button1=new JButton("...")
JButton button2=new JButton("...")
JFileChooser jfc=new JFileChooser()//文件选择器
YFileChooser(){
jfc.setCurrentDirectory(new File("d:\\"))//文件选择器的初始目录定为d盘
//下面两行是取得屏幕的高度和宽度
double lx=Toolkit.getDefaultToolkit().getScreenSize().getWidth()
double ly=Toolkit.getDefaultToolkit().getScreenSize().getHeight()
frame.setLocation(new Point((int)(lx/2)-150,(int)(ly/2)-150))//设定窗口出现位置
frame.setSize(300,150)//设定窗口大小
frame.setContentPane(tabPane)//设置布局
//下面设定标签等的出现位置和高宽
label1.setBounds(10,10,70,20)
label2.setBounds(10,30,100,20)
text1.setBounds(80,10,120,20)
text2.setBounds(80,30,120,20)
button1.setBounds(210,10,50,20)
button2.setBounds(210,30,50,20)
button1.addActionListener(this)//添加事件处理
button2.addActionListener(this)//添加事件处理
con.add(label1)
con.add(label2)
con.add(text1)
con.add(text2)
con.add(button1)
con.add(button2)
con.add(jfc)
tabPane.add("目录/文件选择",con)//添加布局1
tabPane.add("暂无内容",con1)//添加布局2
frame.setVisible(true)//窗口可见
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)//使能关闭窗口,结束程序
}
绝游枯 public void actionPerformed(ActionEvent e){//事件处理
if(e.getSource().equals(button1)){//判断触发方法的按钮是哪个磨卜
jfc.setFileSelectionMode(1)//设定只能选择到文件夹
int state=jfc.showOpenDialog(null)//此句是打开文件选择器界面的触发语句
if(state==1){
return//撤销则返回
}
else{
File f=jfc.getSelectedFile()//f为选择到的目录
text1.setText(f.getAbsolutePath())
}
}
if(e.getSource().equals(button2)){
jfc.setFileSelectionMode(0)//设定只能选择到文件
int state=jfc.showOpenDialog(null)//此句是打开文件选择器界面的触发语句
if(state==1){
return//撤销则返回
}
else{
File f=jfc.getSelectedFile()//f为选择到的文件
text2.setText(f.getAbsolutePath())
}
}
}
public static void main(String[] args) {
new YFileChooser()
}
}
不用谢~请叫我雷锋
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)