精华内容
下载资源
问答
  • java之swing下拉菜单实现方法
    2021-03-08 00:27:48

    本文实例讲述了java之swing下拉菜单实现方法。分享给大家供大家参考。具体如下:

    import java.awt.*;

    import javax.swing.*;

    import java.awt.event.*;

    public class test extends JApplet

    implements ItemListener{

    JLabel jtf;

    ImageIcon a1, a2, a3;

    public void init(){

    Container contentPane = getContentPane();

    contentPane.setLayout(new FlowLayout());

    JComboBox jc = new JComboBox();

    jc.addItem("6");

    jc.addItem("7");

    jc.addItem("8");

    jc.addItemListener(this);

    contentPane.add(jc);

    jtf = new JLabel(new ImageIcon("D:/data/Images/6.gif"));

    contentPane.add(jtf);

    }

    public void itemStateChanged(ItemEvent ie){

    String s = (String)ie.getItem();

    jtf.setIcon(new ImageIcon("D:/data/Images/"+s+".gif"));

    }

    }

    希望本文所述对大家的java程序设计有所帮助。

    更多相关内容
  • phpexcel导出下拉框

    2020-12-09 18:12:28
    phpexcel导出带有下拉框的模板(可解决导出因下拉框源内容过多无法正常展示) 前言 第一次写博客,记录一下phpexcel的部分基础方法,以及遇到的疑难点 使用 PHPExcel 遇到的一个问题:下拉列表的数据来源过长时,显示...

    phpexcel导出带有下拉框的模板(可解决导出因下拉框源内容过多无法正常展示)


    前言

    第一次写博客,记录一下phpexcel的部分基础方法,以及遇到的疑难点

    使用 PHPExcel 遇到的一个问题:下拉列表的数据来源过长时,显示了别的正常的下拉列表的数据来源或者显示为空白

    个人解决方式:将下拉列表的数据来源单独存在一个表格中,可支持大量的数据来源

    下拉列表的数据来源若存在右括号导出不成功,我没遇到解决方案,欢迎大家来指教


    提示:以下是我的解决方案,案例仅供参考:

    /**

    • 数据导出带下拉框的表格
    • @params array $info 下拉框内容 [‘AAAA’,‘BBBB’]

    */
    function exportDataSelectOptions ($info)
    {

    //文件名称
    $filename = 'AAAA导入模板';
    
    //excel表格列名
    $header = [['名字',30],['手机号',25],['邮箱',25],['性别',10],['所在地址',26]];
    
    //需要制作的下拉框文件
    $spectials = [   ['column'=>'D','options'=>['男','女','保密'] ],
                ['column'=>'E','options'=>$info]];
    
    //样例
    $data = [
                ['测试样例1','13665663533','13665663533@qq.com','女',$info[0]],
                ['测试样例2','13665663532','13665663532@qq.com','男',$info[0]],
                ['测试样例3','13665663513','13665663513@qq.com','男',$info[0]],
            ];
    
    ini_set("error_reporting","E_ALL & ~E_NOTICE");
    
    require_once '../phpexcel/Classes/PHPExcel.php'; //初始化PHPExcel(),不使用模板 
    
    $objPHPExcel = new PHPExcel();
    
    $objPHPExcel->setActiveSheetIndex(0);
    
    //头部样式
    $objPHPExcel->getDefaultStyle()->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER);
    $objPHPExcel->getDefaultStyle()->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
    $hk = 0; 
    
    //所有单元格(行)默认高度
    $objPHPExcel->getActiveSheet()->getDefaultRowDimension()->setRowHeight(25);
    
    // 自动换行
    // $objPHPExcel->getActiveSheet()->getStyle( 'A1:L100')->getAlignment()->setWrapText(true);
    
    // 设置特有的表格样式
    $styleThinBlackBorderOutline = array( //边框线
        'borders' => array(
            'allborders' => array( //设置全部边框
                'style' => \PHPExcel_Style_Border::BORDER_THIN //粗的是thick
            ),
        ),
    );
    //设置边框
    $objPHPExcel->getActiveSheet()->getStyle( 'A1:L100')->applyFromArray($styleThinBlackBorderOutline);
    
    //合并单元格(如果要拆分单元格是需要先合并再拆分的,否则程序会报错)
    $objPHPExcel->getActiveSheet()->mergeCells('A1:L1');
    
    //拆分单元格;
    // $objPHPExcel->getActiveSheet()->unmergeCells('B7:D7'); 
    
    // 设置内容 
    $objPHPExcel->setActiveSheetIndex(0)->setCellValue('A1','标题:XXXXXXX');
    // 设置字体样式
    // $PHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setName('宋体');
    // 设置文字加粗
    // $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setBold(true);  
    // 设置文字大小
    // $objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->setSize(18);
    // 设置文字水平居中
    $objPHPExcel->getActiveSheet(0)->getStyle('A1')->getAlignment()->setHorizontal(\PHPExcel_Style_Alignment::HORIZONTAL_LEFT);
    // 设置文字垂直居中
    $objPHPExcel->getActiveSheet(0)->getStyle('A1')->getAlignment()->setVertical(\PHPExcel_Style_Alignment::VERTICAL_BOTTOM);
    // 设置自动换行
    // $PHPExcel->getActiveSheet(0)->getStyle('A2')->getAlignment()->setWrapText(true);
    
    
    //写入头部
    foreach ($header as $k => $v)
    {
        $colum = \PHPExcel_Cell::stringFromColumnIndex($hk);
        $objPHPExcel->setActiveSheetIndex(0)->setCellValue($colum.$rowindex, $v[0]);
        $objPHPExcel->getActiveSheet(0)->getColumnDimension($colum )->setWidth($v[1]);
    
        $hk += 1;
    }
    
    $objActSheet = $objPHPExcel->getActiveSheet(0);
    
    // 新建工作表  -->保存下拉框数据来源
    $objPHPExcel->createSheet(); 
    $subObject = $objPHPExcel->getSheet(1);
    $subObject->setTitle("data");
    
    $subcolumn = ['A','B','C','D','E','F','G','H','I','J','K'];
    //设置下拉框
    foreach($spectials as $k => $spectial)
    {
        
        //保存下拉框内容到新建的工作表中
        $list = $spectial['options']; 
        if ($list) {
            foreach ($list as $i => $d) {
                $c = $subcolumn[$k].($i+1);
                $subObject->setCellValue($c,$d); 
            } 
        }
    
        //下拉框写入开始行数
        $n = 2;
        // 我这里设置100行,可自行设置
        while($n < 101) {
            $objValidation = $objActSheet->getCell($spectial['column'].(string)$n)->getDataValidation(); //这一句为要设置数据有效性的单元格
            // $objValidation的各项设置参数可详见phpexcel文件,
            // 目录大概为/.../phpoffice/phpexcel/Classes/PHPExcel/Writer/Excel5/Worksheet.php 
            // 2767行 方法名:writeDataValidity
            $objValidation -> setType(\PHPExcel_Cell_DataValidation::TYPE_LIST)
            -> setErrorStyle(\PHPExcel_Cell_DataValidation::STYLE_STOP)
            -> setAllowBlank(true)
            -> setShowInputMessage(true)
            -> setShowErrorMessage(true)
            -> setShowDropDown(true)
            -> setErrorTitle('输入的值有误')
            -> setError('您输入的值不在下拉框列表内.')
            -> setPromptTitle('')
            -> setPrompt('')
            -> setOperator(\PHPExcel_Cell_DataValidation::OPERATOR_BETWEEN)
            ->setFormula1("data!$".$subcolumn[$k]."$1:$".$subcolumn[$k]."$".count($list));  //下拉框数据来源多的时候,建议使用此方法
            // -> setFormula1('"'.$optionsString.'"'); //如果下拉框数据来源少,可使用此方法,无需新建表格
            $n++;
        }
    }
    
    
    //样例数据
    $column = 2;
    foreach($data as $key => $rows)  //行写入
    {
        $span = 0;
        foreach($rows as $keyName => $value) // 列写入
        {
            $j = \PHPExcel_Cell::stringFromColumnIndex($span);
            $objActSheet->setCellValue($j.$column, $value);
            $span++;
        }
        $column++;
    }
    
    ob_end_clean();
    ob_start();
    $objWriter = new \PHPExcel_Writer_Excel5($objPHPExcel);
    ob_end_flush();
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");
    header('Content-Disposition:inline;filename="'.$filename.'.xls"');
    header("Content-Transfer-Encoding: binary");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Pragma: no-cache");
    $objWriter->save('php://output');
    //清空数据缓存
    unset($data);
    

    }


    总结

    提示:这里对文章进行总结:
    以上就是今天要记录的内容,欢迎大家前来交流与指教。

    参考

    http://www.manongjc.com/detail/19-qywecjpntmnnxpi.html
    http://php-note.com/article/1605.html
    https://www.cnblogs.com/zc290987034/p/12664518.html

    展开全文
  • java下拉菜单复选框

    2018-11-20 16:57:52
    自己改进的java文本框+下拉复选框功能.点击文本框弹出下拉菜单,每选择一次复选框选项,文本框上自动写入选项内容. 可自定义选项之间分隔符
  • 情景:导出时会遇到某个字段是字典表中数据,为了防止用户乱填,需要返回下拉,用户只需要选择下拉即可 实现方法如下: 第一步:需要导入apache下的poi包 <dependency> <groupId>org.apache.poi&...

    情景:导出时会遇到某个字段是字典表中数据,为了防止用户乱填,需要返回下拉,用户只需要选择下拉即可

    实现方法如下:

    第一步:需要导入poi包

            <!-- excel -->
            <dependency>
                <groupId>cn.afterturn</groupId>
                <artifactId>easypoi-base</artifactId>
                <version>4.2.0</version>
            </dependency>

    第二步:easypoi中未封装进去下拉,需要创建一个生成下拉的方法

    
    import org.apache.poi.hssf.usermodel.DVConstraint;
    import org.apache.poi.hssf.usermodel.HSSFDataValidation;
    import org.apache.poi.ss.usermodel.*;
    import org.apache.poi.ss.util.CellRangeAddressList;
    
    public final class ExcelUtil {
    
        /**
         * firstRow 开始行号(下标0开始)
         * lastRow  结束行号,最大65535
         * firstCol 区域中第一个单元格的列号 (下标0开始)
         * lastCol 区域中最后一个单元格的列号
         * dataArray 下拉内容
         * sheetHidden 影藏的sheet编号(例如1,2,3),多个下拉数据不能使用同一个
         * */
        public static void selectList(Workbook workbook,int firstCol,int lastCol,String[] strings ){
            Sheet sheet = workbook.getSheetAt(0);
            //  生成下拉列表
            //  只对(x,x)单元格有效
            CellRangeAddressList cellRangeAddressList = new CellRangeAddressList(2, 65535, firstCol, lastCol);
            //  生成下拉框内容
            DVConstraint dvConstraint = DVConstraint.createExplicitListConstraint(strings);
            HSSFDataValidation dataValidation = new HSSFDataValidation(cellRangeAddressList, dvConstraint);
            //  对sheet页生效
            sheet.addValidationData(dataValidation);
    
        }
    }

    第三步:把查询字典列表封装一个方法中:

        private void commonChange(Workbook workbook) {
            //String[] list1 = new String[]{"南山区", "福田区", "宝安区", "罗湖区", "龙岗区"};
            //String[] list2 = new String[]{"商场", "医院", "住宅", "学校", "港口", "酒店","其他"};
    
            SysDictMaintenance sysDictMaintenance = new SysDictMaintenance();
    
            //设备使用区域列表
            List<String> sbsyqyList = new ArrayList<>();
            List<SysArea> list3 = sysAreaService.getAreaList();
            for (SysArea dict : list3) {
                sbsyqyList.add(dict.getName());
            }
    
            //查询设备所属场所列表
            List<String> sbcsList = new ArrayList<>();
            sysDictMaintenance.setType("use_place");
            List<SysDictMaintenance> list4 = sysDictMaintenanceService.queryList(sysDictMaintenance);
            for (SysDictMaintenance dict : list4) {
                sbcsList.add(dict.getLabel());
            }
    
            //设置Excel下拉列表
            ExcelUtil.selectList(workbook, 33, 33, sbsyqyList.toArray(new String[sbsyqyList.size()]));
            ExcelUtil.selectList(workbook, 34, 34, sbcsList.toArray(new String[sbcsList.size()]));
    
        }

    注意: ExcelUtil.selectList(workbook, 33, 33, sbsyqyList.toArray(new String[sbsyqyList.size()]));  下标要与实体对象中相关字段,一一对应,不然显示对不上的。还有要把数据格式数组数组对象转换成数组

    
    @Data
    @EqualsAndHashCode(callSuper = true)
    @Accessors(chain = true)
    public class WbDeviceParameters {
    
        private static final long serialVersionUID = 1L;
    
        /**
         * 特种设备编号
         */
        @TableId
        private String id;
    
        /**
         * 设备注册代码
         */
        @Excel(name = "*设备注册代码", orderNum = "1", width = 20)
        private String sbzcdm;
    
        .
        .
        .
    
        /**
         * 设备使用区域
         */
        @Excel(name = "*设备使用区域", orderNum = "34", width = 20)
        private String deviceUseArea;
    
        /**
         * 设备所属场所
         */
        @Excel(name = "*设备所属场所", orderNum = "35", width = 20)
        private String devicePlace;
    
    
    }
    

    第四步:调用封装相关字典查询列表方法:

     /**
         * 下载导入数据模板
         */
        @RequestMapping(value = "downLoad")
        public void downLoad(HttpServletResponse response) throws IOException {
            ServletOutputStream sos = null;
            try {
                String title = "设备信息";//表格标题
                String fileName = "设备信息导入模板.xls";
                DeviceParameters deviceParameters = new DeviceParameters();
                deviceParameters.setSbzcdm("3110441xxx2012060002");
                List<DeviceParameters> list = deviceParametersService.findList(deviceParameters);//查询设备列表
    
                commonChange(workbook);//生成下拉调用
    
                ExportParams exportParams = new ExportParams(title, title);
                exportParams.setDictHandler(new ExcelDictHandlerImpl());
                Workbook workbook = ExcelExportUtil.exportExcel(exportParams, DeviceParameters.class, list);
                response.setContentType("application/vnd.ms-excel;charset=UTF-8");
                response.setCharacterEncoding("UTF-8");
                response.setHeader("Content-Disposition", "attachment; filename=" + Encodes.urlEncode(fileName));
                sos = response.getOutputStream();
                workbook.write(sos);
            } catch (Exception e) {
                LoggerUtils.error(logger, e);
            }
        }

    效果图如下:

    OK  ^ _ ^这次就到这里啦

    展开全文
  • poi动态生成excel中下拉菜单,动态数据源,支持2003版本和2007版本
  • XSSFWorkbook 导出模板下拉菜单设置

    千次阅读 2019-09-15 21:12:23
    package test;...最近一个需求要求在导入模板上面添加下拉菜单,找了很多资料都是excel2003版的下拉菜单制作,在这里记录一下2007版的做法 转载于:https://my.oschina.net/u/3484671/blog/2873618
    package test;
    
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    import org.apache.poi.ss.usermodel.DataValidation;
    import org.apache.poi.ss.usermodel.DataValidationConstraint;
    import org.apache.poi.ss.usermodel.DataValidationHelper;
    import org.apache.poi.ss.util.CellRangeAddressList;
    import org.apache.poi.xssf.usermodel.XSSFDataValidation;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    
    public class Demo {
    	public static void main(String[] args) throws IOException {
    		XSSFWorkbook workbook = new XSSFWorkbook(); 
    		XSSFSheet spreadsheet = workbook.createSheet("Sheet Name");
    		String[] strs = new String[]{"aa","bb","cc","dd","ee","ff","gg","hh","ii"};
    		CellRangeAddressList regions = new CellRangeAddressList(0, 9, 0, 0);  
    		DataValidationHelper dataValidationHelper = spreadsheet.getDataValidationHelper();
    		DataValidationConstraint createExplicitListConstraint = dataValidationHelper.createExplicitListConstraint(strs);
    		DataValidation createValidation = dataValidationHelper.createValidation(createExplicitListConstraint, regions);
    	     //处理Excel兼容性问题
            if (createValidation instanceof XSSFDataValidation) {
                createValidation.setSuppressDropDownArrow(true);
                createValidation.setShowErrorBox(true);
            } else {
                createValidation.setSuppressDropDownArrow(false);
            }
            spreadsheet.addValidationData(createValidation);
    		FileOutputStream out = new FileOutputStream( new File("D:/Writesheet.xlsx"));
    		workbook.write(out);
    		out.close();
    		
    	}
    }

    最近一个需求要求在导入模板上面添加下拉菜单,找了很多资料都是excel2003版的下拉菜单制作,在这里记录一下2007版的做法

    转载于:https://my.oschina.net/u/3484671/blog/2873618

    展开全文
  • 1、为了避免excel下拉框选项过多会导致内容不显示(或者生成的时候报错:String literals in formulas can't be bigger than 255 characters ASCII easyexcel),将下拉框的内容都存储在另一个新建的固定的sheet页,...
  • 最近公司要做Excel的模板导出,导入数据的工作,导出时还要动态生成模板,并且生成单选下拉菜单,和多选下拉菜单。开始搞这个很快除了多选的都搞定了,就是多选卡住了。弄了很久。。。最后终于在和多方面的交流下...
  • select下拉框列表实现图片内容显示,$("#***").select()格式
  • vue---实现递归组件(多级下拉菜单)

    千次阅读 2021-05-05 10:34:21
    之前在写组件时总有些疑惑,为什么export default导出的对象中有个name属性,今天看过递归组件之后,才发现这个name属性的一个比较重要的作用。(当然。name属性的还有其他的用处)。 组件递归: 1、设置组件...
  • 这半个月都在折腾vue的项目,虽然不是很复杂,但对于刚入门的小白来说,踩到的坑不少,常常因为一个小...dropdown组件的下拉菜单子选项click事件触发没反应问题,代码如下 给@click加上native 如@click.native ...
  • 精品文档 实验四 下拉菜单和快捷菜单设计 实验目的 : 1熟悉菜单设计器的使用 2掌握设计下拉菜单的方法 3掌握快捷菜单的设计和调用 实验要求 : 1设计一个货物管理系统下拉菜单要求如下 包括数据录入数据维护和...
  • 扩展 C# Form DataGridView 操作列,支持设置多个图片项(如修改、删除、打印、导出等其他操作,支持项过多时收纳为弹出菜单
  • 四级联动下拉菜单

    千次阅读 2018-01-04 11:21:35
    数据库导出地址数据联动显示下拉菜单 1.先说数据库结构,上图: 结构副id形式,sid是本条数据的id,fid是本条数据的上级数据的sid. 就是把这种级别关系建立在数据库里,之后用起来就简单了. 2.前端代码 ...
  • 文件扩展名为 .xls,导出的数据最多为65535,优点:一般不会发生内存溢出 设置下拉菜单方式: String[] strs = {"语文","数学","体育"}; DVConstraint constraint = DVConstraint.createExplicitListConstraint(strs...
  • Java下拉菜单实现

    2011-01-24 12:37:27
    Java 下拉菜单实现有讲解有实例。轻松掌握Java下拉菜单编程
  • layui下拉菜单的按钮组

    万次阅读 热门讨论 2019-05-08 17:52:23
    直接用菜单导航改的样式,自己是前端菜鸡,直接用的内嵌样式不介意的可以拿去自己改改 <div class="layui-btn-group" style="float:right;padding:5px 15px 0px 20px;"> <button class="layui-btn layui...
  • 可能需要逐级限制,例如你在一些网页,看到可以先选第一级菜单,然后第二级的内容是仅对应第一级出现的选项,这样才会能满足更复杂的录入需求~ 所以只会做简单的数据有效性还不够,还要懂制作多级联动下拉菜单了: ...
  • EasyPoi导出导入多sheet页+动态列+单元格下拉选项EasyPoi版本要求项目需求说明多Sheet页动态列导出EasyPoi多sheet页动态列导入 EasyPoi版本要求 因为需要使用动态的下拉选项 easypoi 版本我使用的是4.3 项目需求说明...
  • DIV+CSS制作二级菜单(横排二级下拉菜单)以及二级菜单出现错位解决方法
  • Unity3D中UGUI实现下拉菜单 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享、心创新...
  • 如果包含在[removed]标记中,则行为将导出为CheckboxBehavior 。 请参阅 Marionette 的以将行为包含到视图中。 此行为的选项是: 选择器:(必需)视图中<select>元素的 jQuery 选择器 modelField :(必需...
  • -- 二级菜单 --> <dd> 个人</button> </dd> <dd> 单位</button> </dd> </dl> </li> </ul> </script> 方法一:点击显示按钮: //组合按钮 $("#exportClick").click(function(e) { $("#exportEncrypt").toggle();...
  • poi导出excel 下拉列表值超过255问题

    千次阅读 2020-04-02 16:38:42
    } 实际项目中使用如下: @ResponseBody @RequestMapping(value = "/exportBusinessTemplate", method = RequestMethod.GET) @ApiOperation(value = "导出商机模板") public void exportBusinessTemplate(@...
  • 我正在创建一个Excel模板,其中应包含一个下拉列表。我认为phpexcel库(PHPExcel Multiple Dropdown list that dependent)有可能。我想知道是否可以使用maatwebsite提供的laravel-excel库完成。我需要诸如dropdown,...
  • 软件自身问题,安装更新补丁即可解决。 不想更新补丁也可以使用键盘的方向键进行选中。 补丁百度云链接:https://pan.baidu.com/s/1LDxRFwQnR0GSONuz7wcEfA  提取码:6gpk...
  • PHPExcel 导出文件自带下拉选择 功能

    千次阅读 2018-07-23 15:54:33
    1.此案例 是要导出的excel的银行字段可以下拉选择 protected $excel_bank_arr = array( '0'=&gt;'中国工商银行', '1'=&gt;'中国农业银行', '2'=&gt;'中国银行', '3'=&gt;'中国建设银行', '4'...
  • 菜单是GUI中最常用的组件,菜单不是Component类的子类,不能放置在普通容器中,不受布局管理器的约束,只能放置在菜单栏中.菜单组件由菜单栏 (MenuBar)、菜单(Menu)和菜单项(MenuItem)三部分...常用的菜单有:下拉式菜...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 18,486
精华内容 7,394
关键字:

怎么导出下拉菜单内容