如何根据用户输入制作动态频率直方图

Object fileButton = null; if(“Analyze Text File”.equals(command)) { JFileChooser filechooser; JFileChooser chooser = new JFileChooser(); int returnVal = filechooser.showOpenDialog(getParent()); if (returnVal == JFileChooser.APPROVE_OPTION) { File file = filechooser.getSelectedFile(); String Stext = (String) readFileAsString(file); //String text = textInput.getText(); Map counts = getCounts(text); int width = counts.size() * BAR_WIDTH; int max = maxCount(counts); int height = max […]

使用CsvBeanReader读取具有可变列数的CSV文件

所以我正在解析.csv文件。 我在StackOverflow上的某个地方接受了另一个线程的建议并下载了SuperCSV。 我终于完成了一切工作,但现在我遇到了一个似乎很难修复的错误。 出现此问题的原因可能是也可能未填充最后两列数据。 下面是.csv文件的示例,第一行缺少最后一列,第二行完全完成: 2012:07:25,11:48:20,922,“uLog.exe”,“”,按键,1246,341,-1.00,-1.00,1.00,class次2012:07:25,11:48:21,094,“ uLog.exe“,”“,按下键,1246,341,-1.00,-1.00,1.00,b,Shift 根据我对Super CSV Javadoc的理解,如果存在可变数量的列,则无法使用CsvBeanReader填充Java Bean。 这似乎真的很愚蠢,因为我觉得在初始化Bean时,应该允许这些缺少的列为null或其他一些默认值。 作为参考,这是我的解析器的完整代码: public class ULogParser { String uLogFileLocation; String screenRecorderFileLocation; private static final CellProcessor[] cellProcessor = new CellProcessor[] { new ParseDate(“yyyy:MM:dd”), new ParseDate(“HH:mm:ss”), new ParseDate(“SSS”), new StrMinMax(0, 100), new StrMinMax(0, 100), new StrMinMax(0, 100), new ParseInt(), new ParseInt(), new ParseDouble(), new ParseDouble(), new ParseDouble(), […]

什么时候应该使用类的java 5方法?

浏览一些代码,我遇到了以下代码 trTuDocPackTypdBd.update(TrTuDocPackTypeDto.class.cast(packDto)); 而且我想知道这种方式是否有任何优势 trTuDocPackTypdBd.update((TrTuDocPackTypeDto)packDto); 我已经问开发人员负责了,他说他使用它是因为它是新的(这对我来说似乎不是一个特别好的理由),但是当我想要使用这种方法时我很感兴趣。

开源Java库生成服务器端的网页缩略图

我正在寻找一个开源Java库来为给定的URL生成缩略图。 我需要捆绑此function,而不是呼叫外部服务,例如Amazon或websnapr 。 http://www.webrenderer.com/在这篇文章中提到: 服务器生成的网页截图 ,但它是一个商业解决方案。 我希望有一个基于Java的解决方案,但可能需要考虑执行外部进程,如khtml2png ,或集成html2ps之类的东西。 有什么建议么?

何时使用while循环而不是循环

我正在学习java以及android。 几乎所有我们可以执行的操作都会循环我们可以在while循环中执行的操作。 我找到了一个简单的条件,使用while循环比循环更好 如果我必须在我的程序中使用计数器的值,那么我认为while循环比循环更好 使用while循环 int counter = 0; while (counter < 10) { //do some task if(some condition){ break; } } useTheCounter(counter); // method which use that value of counter do some other task 在这种情况下,我发现while循环比for循环更好,因为如果我想在for循环中实现相同,我必须将counter的值赋给另一个变量。 但是当while循环优于for循环时,是否存在任何特定情况

错误或function:Win6 +的Swing默认gui字体不正确

只是(令人惊讶地;-)注意到我的win6 +机器上的应用程序看起来如此拥挤的原因(同样适用于Vista和Win7,120dpi设置,jdk6和jdk7):从桌面属性查找的控件字体都有错误的字体家庭和错误的大小: public static void main(String[] args) { Font guiFont = (Font) Toolkit.getDefaultToolkit().getDesktopProperty(“win.defaultGUI.font”); int guiSize = guiFont.getSize(); Font iconFont = (Font) Toolkit.getDefaultToolkit().getDesktopProperty(“win.icon.font”); System.out.println(“gui default: ” + guiFont + “\nicon default: ” + iconFont); } 输出: gui default: java.awt.Font[family=Tahoma,name=Tahoma,style=plain,size=13] icon default: java.awt.Font[family=Segoe UI,name=Segoe UI,style=plain,size=15] 后者几乎用于所有文本的本机应用程序,而Swing使用前者… 问题: 可能有任何理由,或只是一个错误? 谁负责:Swing查找(从相关系统资源读取desktopProperty时)或操作系统未正确报告? 如何强制使用后者? 解决最后一个的选项: 通过完全控制LAF,人们可能会考虑设置所有相关的文本字体(这就是JGoodies的function,并将其纳入FontPolicy / Set)。 一个脏的hack是将defaultGUI桌面属性的值设置为正确的值 – 它涉及对工具包的reflection访问,这自然会在安全受限的上下文中发挥作用。 […]

GSON解析没有很多类

我有以下JSON,我只对获取元素”status” , “lat”和”lng”感兴趣。 使用Gson ,是否可以解析此JSON以获取这些值而无需创建表示JSON内容的整个类结构? JSON: { “result”: { “geometry”: { “location”: { “lat”: 45.80355369999999, “lng”: 15.9363229 } } }, “status”: “OK” }

使用Writer将int写入文本文件

Writer wr = new FileWriter(“123.txt”); wr.write(123); wr.close(); 输出文件包含: { 哪里有问题? 如何使用Writer将int写入文本文件?

在Java中从JButton拖放到JComponent

我在互联网上搜索了如何将JButton拖放到对象的示例,但我无法使其工作。 我的程序所做的是,当我单击一个按钮时,该对象更新了一个字段(带有selectedobject.setField())。 我希望能够做到这一点,不是通过点击,而是通过拖动JButton。 我怎样才能做到这一点 ? 我找到了这个,我试着输入我的代码: btn.setTransferHandler(new ImageHandler()); btn.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { JComponent c = (JComponent)e.getSource(); TransferHandler handler = c.getTransferHandler(); handler.exportAsDrag(c, e, TransferHandler.COPY); } }); 我从这里拿了ImageHandler类。

Java:JPanel中的垂直对齐

我试图在一个JPanel中垂直对齐(居中)两个JLabel。 JPanel panel = new JPanel(); panel.setPreferredSize(size); JLabel label1 = new JLabel(icon); JLabel label2 = new JLabel(“text”); panel.add(label1); panel.add(label2); 我尝试过使用setAligmentY()但没有成功。 两个标签始终显示在JPanel的顶部。 UPD:标签应该像使用FlowLayout一样位于彼此旁边,但是在JPanel的中间。