`
xinklabi
  • 浏览: 1586887 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

JAVA Swing文件选择器及滚动条使用

    博客分类:
  • Java
 
阅读更多

package comparator.ui;
import java.awt.Container;
import java.util.List;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;

import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;

import comparator.util.FileReaderUtil;
public class YFileChooser implements ActionListener{
 /** Excel文件目录 */
 public File excelDir = null;
 /** Txt文件目录 */
 public File txtDir = null;
    JFrame frame=new JFrame("IMIX消息比对器");
    JTabbedPane tabPane=new JTabbedPane();//选项卡布局
    Container con=new Container();//布局1
    /** 处理过程中产生的提示信息显示面板 */
    JScrollPane executeInfoPane = new JScrollPane();
    /** 消息对比结果信息  */
    JScrollPane compareResultPane = new JScrollPane();
    //Container con1=new Container();//布局2
    JLabel label1=new JLabel("Excel目录:");
    JLabel label2=new JLabel("Txt目录:");
    JTextField text1=new JTextField();
    JTextField text2=new JTextField();
    JButton button1=new JButton("选择..");
    JButton button2=new JButton("选择..");
    JButton doCompareBtn = 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(400,250);//设定窗口大小
        frame.setContentPane(tabPane);//设置布局
       //下面设定标签等的出现位置和高宽
        label1.setBounds(10,20,70,20);
        label2.setBounds(10,50,100,20);
        text1.setBounds(80,20,120,20);
        text2.setBounds(80,50,120,20);
        button1.setBounds(210,20,70,20);
        button2.setBounds(210,50,70,20);
        doCompareBtn.setBounds(10, 100, 70, 20);
       
        button1.addActionListener(this);//添加事件处理
        button2.addActionListener(this);//添加事件处理
        doCompareBtn.addActionListener(this);
        con.add(label1);
        con.add(label2);
        con.add(text1);
        con.add(text2);
        con.add(button1);
        con.add(button2);
        con.add(doCompareBtn);
        con.add(jfc);
        tabPane.add("目录选择",con);//目录选择面板
  tabPane.add("提示信息", executeInfoPane );//提示信息面板
  tabPane.add("比对结果", compareResultPane);//比较结果面板
        frame.setVisible(true);//窗口可见
        //frame.setDefaultLookAndFeelDecorated(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{
             excelDir=jfc.getSelectedFile();//选择的Excel目录
                text1.setText(excelDir.getAbsolutePath());
            }
        }
        if(e.getSource().equals(button2)){
            //jfc.setFileSelectionMode(0);//设定只能选择到文件
            jfc.setFileSelectionMode(1);//设定只能选择到文件夹
            int state=jfc.showOpenDialog(null);//此句是打开文件选择器界面的触发语句
            if(state==1){
                return;//撤销则返回
            }
            else{
                txtDir=jfc.getSelectedFile();//选择的txt目录
                text2.setText(txtDir.getAbsolutePath());
            }
        }
        if(e.getSource().equals(doCompareBtn)){
         /*if(excelDir == null){
          JOptionPane.showMessageDialog(null, "Excel目录不能为空");
          return;
         }else if(txtDir == null){
          JOptionPane.showMessageDialog(null, "Txt目录不能为空");
          return;
         }*/
         executeInfoPane.setViewportView(getInfoList());
        }
    }
   
    private JList getInfoList(){
     JList infoList = new JList();
     DefaultListModel listModel = new DefaultListModel();
     /*File infoFile = getInfoFile();
     List<String> infoLines = FileReaderUtil.getFileTxtLines(infoFile);
     for(String il:infoLines){
      listModel.addElement(il);
     }*/
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     listModel.addElement("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
     
     infoList.setModel(listModel);
     return infoList;
    }
   
    private File getInfoFile(){
     File f = new File(("file\\AllInfo.txt"));
     return f;
    }
   
    public static void main(String[] args) {
        new YFileChooser();
    }

}

 

分享到:
评论

相关推荐

    java swing实现pdf阅读器

    在Java Swing中,我们可以使用`JFrame`作为主窗口,`JPanel`作为内容面板,然后在面板上放置各种组件如`JButton`(按钮)、`JScrollPane`(滚动条)和`JLabel`(显示PDF内容)。对于PDF内容的展示,由于PDFBox不直接...

    java文件选择器代码

    通过以上分析,我们可以了解到这段Java代码实现了一个简单的文件选择器,它利用了Swing框架提供的组件和接口。开发者可以根据实际需求进一步扩展和优化这个文件选择器的功能,比如增加文件过滤、多选支持等功能。

    JavaSwing界面设计(所有控件及示例)

    - `JScrollPane` 提供了滚动条功能,当组件内容超出可视区域时,允许用户滚动查看。 - `JSplitPane` 用于分割窗口为两个或多个可调整大小的部分。 - `JTabbedPane` 创建带有标签的多页面视图。 - `...

    java+swing聊天室

    2. **聊天窗口**:显示聊天历史,可以是一个JTextArea,其中滚动条允许用户浏览之前的对话。为了保持可读性,信息通常按照时间顺序显示,新消息在下方。 3. **输入框**:用户输入消息的地方,通常是JTextField。...

    java swing界面设计

    - "Java图形用户界面设计(Swing常用组件).ppt"和"JavaSwing界面设计(所有控件及示例).ppt"两个文件中可能包含了各种Swing组件的使用示例和实际应用,建议仔细学习和实践。 9. **学习资源** - Java官方文档:提供...

    java swing

    在Java Swing中,你可以创建丰富的、交互式的窗口应用程序,包括按钮、文本框、菜单、滚动面板等组件。Swing 提供了一个轻量级的组件模型,它不依赖于操作系统提供的GUI组件,而是通过Java实现,因此具有跨平台的...

    Swing下滚动条实现仿分页

    本项目涉及的核心是“Swing下滚动条实现仿分页”,这通常是为了在有限的屏幕空间内展示大量数据,提供类似数据库分页的功能,但通过滚动条操作。我们将深入探讨Swing组件JTable、JScrollPane以及如何利用它们来实现...

    最全的Java Swing示例程序

    10. JScrollPane:滚动条组件,用于包含那些可能超出视图范围的组件。 11. JOptionPane:用于创建弹出对话框,如警告、确认、输入等。 Swing还支持事件处理,例如ActionListener接口用于处理按钮点击等动作事件,...

    Java swing 完全完整实例

    JPanel可以用来组织和组合组件,而JScrollPane则用于添加滚动条,当组件内容超出可视区域时。 3. **布局管理器(Layout Managers)**:Swing提供多种布局管理器,如FlowLayout、BorderLayout、GridLayout、...

    java swing电子教程

    JScrollPane,用于在需要时添加滚动条;以及JToolBar,用于创建工具栏。这些高级组件让开发者可以构建出更复杂的用户界面。 最后,Swing的外观可以改变,通过LookAndFeel类可以设置系统默认的外观,或者自定义外观...

    JavaSwing程序开发

    - **JScrollPane**:包含一个带有滚动条的区域,内部放置`JTextArea`。 - **JTextArea**:提供多行文本输入区域,支持文本编辑功能。 ##### 2. 事件处理 事件处理是Swing程序中另一个关键的部分。在记事本程序中,...

    JAVA Swing 全教程

    JAVA Swing 是Java GUI(图形用户界面)开发的重要库,它为开发者提供了丰富的组件和功能,使得构建复杂的桌面应用程序变得更为简单。Swing是基于Java Foundation Classes (JFC) 平台的一部分,它在Abstract Window ...

    java swing 学习教程

    - JScrollPane:提供滚动条功能,可以包裹其他组件,当内容超出视窗时自动显示滚动条。 - JTable:用于展示表格数据,可进行排序、选择和编辑。 - JTree:展示层次结构的数据,如文件系统目录。 - JTabbedPane:...

    Java Swing JList列表框的实现

    Java Swing JList 列表框是 Java 中的一个基本组件,用于显示多个选项,允许用户选择一个或多个选项。下面详细介绍 JList 的实现。 概述 JList 是一个列表框,用于显示多个选项,允许用户选择一个或多个选项。...

    javaSwing常用的组件

    10. **JScrollPane**: 当组件内容过多无法在窗口完全显示时,JScrollPane 提供了滚动条功能,可以包裹其他组件,如JTree、JTable等。 11. **JRadioButton** 和 **JCheckBox**: 这两者都是选择组件,JRadioButton ...

    Java Swing 组件全演示

    Java Swing 是Java GUI(图形用户界面)库的一部分,用于构建桌面应用程序。它提供了丰富的组件集合,使得开发者可以...对于初学者而言,这是一条很好的学习路径,有助于他们从实践中建立起对Java Swing的全面认识。

    深入浅出java swing程序设计电子书

    这本书将引领读者探索Swing的各种组件,包括按钮、文本框、面板、菜单、滚动条等,以及如何使用这些组件构建出具有专业外观和交互性的用户界面。 首先,书中会详细介绍Swing的基本概念,如事件处理机制,这是理解...

    java swing ppt

    Swing包含了大量的组件,如按钮、复选框、文本框、列表、表格、滚动条等,这些组件比AWT的同类组件提供了更多的功能和自定义选项。例如,JButton类提供了按钮组件,它可以被设置成各种样式,如标准按钮、图形按钮等...

    Java swing商城+简单聊天系统+论坛

    用户可以通过滚动条查看更多的商品,也可以通过JButton进行翻页操作。 2. **购物车**:用户可以将选择的商品添加到购物车,购物车的管理通常涉及到一个数据结构(如ArrayList或LinkedList)来存储选中的商品对象。...

    Java.Swing.OReilly

    从提供的压缩文件列表来看,"下载说明.HTM"可能是书籍的下载和使用指南,"readme.txt"可能包含关于文件的简短说明,而"Java.Swing.OReilly"可能是书籍的电子版,可能是一个PDF文件或者其他的电子书格式。通过阅读这...

Global site tag (gtag.js) - Google Analytics