使用apache poi使列只读

我正在使用apache-poi生成excel文件。 我需要将第4列设为只读,其余2列将由用户编辑。 我正在使用XSSFCellStyle实现这一点,但它不适合我。 整个代码是: Map styles = new HashMap(); XSSFCellStyle style5 = wb.createCellStyle(); XSSFFont headerFont = wb.createFont(); headerFont.setBold(true); style5.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex()); style5.setFillPattern(XSSFCellStyle.SOLID_FOREGROUND); style5.setFont(headerFont); style5.setLocked(true); // this line does not get executed. styles.put(“header”, style5);

JavaFX WebEngine中的HyperlinkListener

在过去,我使用过JEditorPane,现在我正在尝试使用JavaFX WebEngine。 如何为显示页面上包含超链接的事件注册侦听器(如链接选择或单击链接)? 在JEditorPane中有addHyperlinkListener方法…… 编辑: 我在第一个答案中遵循了建议。 这是我的代码: webEngine.getLoadWorker().stateProperty().addListener(new ChangeListener() { public void changed(ObservableValue ov, State oldState, State newState) { if (newState == Worker.State.SUCCEEDED) { // note next classes are from org.w3c.dom domain EventListener listener = new EventListener() { public void handleEvent(Event ev) { System.out.println(“KLIKNIETO!!!”); } }; Document doc = webEngine.getDocument(); Element el = doc.getElementById(“a”); NodeList […]

DBUnit有没有办法自动创建表?

我刚刚意识到DBUnit本身并不创建表(请参阅如何使用纯JDBC和HSQLDB使用DBUnit进行测试而不会遇到NoSuchTableException? )。 DBUnit有没有办法从数据集或dtd自动创建表? 编辑:对于像HSQLDB这样的内存数据库的简单测试,可以使用粗略的方法来自动创建表: private void createHsqldbTables(IDataSet dataSet, Connection connection) throws DataSetException, SQLException { String[] tableNames = dataSet.getTableNames(); String sql = “”; for (String tableName : tableNames) { ITable table = dataSet.getTable(tableName); ITableMetaData metadata = table.getTableMetaData(); Column[] columns = metadata.getColumns(); sql += “create table ” + tableName + “( “; boolean first = true; for […]

我可以使用一些语法访问匿名内部类中的新方法吗?

是否有任何Java语法来访问外部类中匿名内部类中定义的新方法? 我知道可以有各种变通方法,但我想知道是否存在特殊语法? 例如 class Outer { ActionListener listener = new ActionListener() { @Override void actionPerformed(ActionEvent e) { // do something } // method is public so can be accessible public void MyGloriousMethod() { // viva! } }; public void Caller() { listener.MyGloriousMethod(); // does not work! } } 我自己的解决方案 我刚把所有的方法和成员都移到了外层。

无法连接到SMTP主机:smtp.gmail.com,port:465,响应:-1

发送邮件时,我收到此错误 java.lang.RuntimeException:javax.mail.SendFailedException:发送失败; 嵌套exception是:class javax.mail.MessagingException:无法连接到SMTP主机:smtp.gmail.com,port:465,响应:-1 我的代码是: Properties props = new Properties(); props.put(“mail.smtp.host”, “smtp.gmail.com”); props.put(“mail.smtp.starttls.enable”,”true”); props.put(“mail.smtp.socketFactory.port”, “465”); props.put(“mail.smtp.auth”, “true”); props.put(“mail.smtp.port”, “465”); Session session = Session.getDefaultInstance(props, new javax.mail.Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(“email”,”password”); } }); try { Message message = new MimeMessage(session); message.setFrom(new InternetAddress(“email”)); message.setRecipients(Message.RecipientType.TO, InternetAddress.parse(this.to)); message.setSubject(“Testing”); message.setText(“Hey, this is the testing email.”); Transport.send(message); 任何帮助,将不胜感激。 […]

unit testing中的静态类/方法/属性,是否停止

更新 应该在unit testing开发环境中使用静态类/方法/属性,因为如果不引入再次无法测试的包装器就无法测试它吗? 另一种情况是,当在unit testing目标内使用静态成员时,静态成员不能被模拟。 因此,在测试unit testing目标时,您必须测试静态成员。 您希望在静态成员执行计算时将其隔离。

如何列出可用的密码算法?

我正在使用Cipher.getInstance(String algorithm)获得Cipher实现。 我的印象是,我可能传递的可用算法名称因我的类路径中存在的库而异。 我想编写一个简单的程序,我可以使用不同的类路径运行,列出可用的Cipher算法名称。 获取此列表需要调用哪种方法?

Java BufferedImage到PNG格式的Base64字符串

我试图将屏幕截图输出作为base64编码的字符串,但没有得到很远。 到目前为止我的代码使用的是Base64库( http://iharder.sourceforge.net/current/java/base64/ ): Robot robot = new Robot(); Rectangle r = new Rectangle( Toolkit.getDefaultToolkit().getScreenSize() ); BufferedImage bi = robot.createScreenCapture(r); ByteArrayOutputStream os = new ByteArrayOutputStream(); OutputStream b64 = new Base64.OutputStream(os); ImageIO.write(bi, “png”, os); ByteArrayOutputStream out = new ByteArrayOutputStream(); out.writeTo(b64); String result = out.toString(“UTF-8”); 每次我运行它,“结果”总是一个空字符串,但我不明白为什么。 有任何想法吗? 注意:我不想将png写入磁盘上的文件。

将ArrayList添加到java中的另一个ArrayList

我有以下java代码,其中我试图将ArrayList复制到另一个ArrayList。 ArrayList nodes = new ArrayList(); ArrayList NodeList=new ArrayList(); ArrayList list=new ArrayList(); for(int i=0;i<PropertyNode.getLength()-1;i++){ Node childNode = PropertyNode.item(i); NodeList Children = childNode.getChildNodes(); if(Children!=null){ nodes.clear(); nodes.add("PropertyStart"); nodes.add(Children.item(3).getTextContent()); nodes.add(Children.item(7).getTextContent()); nodes.add(Children.item(9).getTextContent()); nodes.add(Children.item(11).getTextContent()); nodes.add(Children.item(13).getTextContent()); nodes.add("PropertyEnd"); } NodeList.addAll(nodes); list.add(NodeList); } 我希望“list”数组采用以下格式: [[PropertyStart,a,b,c,PropertyEnd],[PropertyStart,d,e,f,PropertyEnd],[PropertyStart,……]] 但是从上面的代码中,“list”数组输出如下所示: [PropertyStart,a,b,c,PropertyEnd,PropertyStart,d,e,f,PropertyEnd,PropertyStart,….PropertyEnd] 我想你可能已经注意到了差异。 我无法达到预期格式的结果。 请建议我任何解决方案! 提前致谢!!

如何在JTextPane中实现自动换行,如何使其包装没有空格的字符串?

如何在JTextPane中实现自动换行? 我试图准确理解它是如何工作的,以便我可以修改行为。 现在,如果我在JScrollPane中有一个标准的JTextPane,它会在空格中破坏文本,但不会在长文字内部 – 如果有一个文本字符串没有比窗口宽的空格,它将不会换行/中断将出现一个水平滚动条。 随着文本宽度的增加,ParagraphView的宽度(通过getWidth())会增加以保存文本。 Lapitsky的这篇文章说LabelView.getBreakWeight()返回带有空格的标签的View.ExcellentBreakWeight和没有空格的标签的View.GoodBreakWeight(GlyphView.java中的代码似乎证实了这一点),为什么它不会破坏? 是以某种方式返回BadBreakWeight而不是GoodBreakWeight? 还是有一些布局问题? 还是有错误? 这是一些代码(为了您的观看乐趣): //somewhere inside JPanel or JFrame constructor JTextPane textPane = new JTextPane(); JScrollPane scrollPane = new JScrollPane(textPane); add(scrollPane); 请注意,如果我取出滚动窗格并只使用文本窗格(它只是在窗口外面时被剪切),它仍然不会换行。 Swing的javadoc似乎没有详细介绍一些对象(如JTextPane,View和相关对象)如何协同工作。 是否还有关于此类课程设计的进一步文档,或许详细说明了每个课程的目的以及它们如何一起工作? 它不公开吗? (或者我是唯一一个在这样的事情上遇到麻烦的人?或者说文档不足以限制一些典型的开发人员不会处理的事情?)