java中JFrame按钮添加事件,选择路径放到文本框里面

java中JFrame按钮添加事件,选择路径放到文本框里面,第1张

无语了,这个破知道,提交代码不过,改成11,就成功了!代码提交中

你需要的方法在按钮事件方法中,有问题追问,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()

    }

}

不用谢~请叫我雷锋


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12213514.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存