必须有一本好的书籍/ PDF/HTML文件,它描述了Java中注释的基本要素和良好实践.我有点知道它们来自其他优秀的Java书籍,但我正在寻找能够教会我大部分知识的东西,以便充分利用它们.(最好用PDF/HTML格式,这样我就可以打印出来并在我的闲暇时阅读,预订也可以,但那些过时了......)
有什么建议?
编辑:我找到了Sun指南,以及来自O'Reilly和DevX的类似教程,以及涵盖它们的Effective Java部分......好的,所以我知道它们是什么以及阅读它们的工具,但是并没有告诉我他们在实践中如何使用它们.(除了在Effective Java和O'Reilly上面的一篇文章中提到它们在自动化测试框架中的使用之外)
我喜欢Eclipse的构建路径功能,但希望与我的蚂蚁保持同步build.xml.有没有办法从文本文件自动导入Eclipse构建路径,或者将Eclipse构建路径导出到文本文件,所以我可以使用ant中的那个文件?(如果我可以访问一个文本文件,我知道我可以弄清楚如何让ant使用该文件作为其javac构建路径)
我的Mac运行Java 1.5再次出现问题....我在哪里获得一个包含javax.xml.stream.XMLInputFactory的.jar文件?我想使用StAX但不知道如何正确设置它.
我似乎无法得到这个设置.我现在已经下载了jaxp-api.jar,jsr173_1.0_api.jar,sjsxp.jar,stax-api-1.0.1.jar,stax2-api-3.0.1.jar和woodstox-core-asl-4.0. 5.jar; 把它们全部放到我的java/lib/ext目录中,确保它们在我的eclipse构建路径上,删除了Mac com.apple.quarantine扩展属性,在.jar文件上做了一个"chmod a + x",然后我仍然会尝试以下错误import javax.xml.stream.XMLInputFactory;
访问限制:由于对所需库的限制而无法访问XMLInputFactory类型/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home/lib/ext/jsr173_1.0_api.jar
我需要做什么?
我有以下内容:
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine jsEngine = mgr.getEngineByName("JavaScript");
jsEngine.eval("function getArray() {return [1,2,3,4,5];};");
Object result = jsEngine.eval("getArray();");
Run Code Online (Sandbox Code Playgroud)
如何将sun.org.mozilla.javascript.internal.NativeArray类型的结果对象转换为相应的java数组?可以告诉我一个工作代码示例吗?它应该适用于String和Integer数组.另外,知道在哪里查找rhino引擎和java之间的其他数据类型转换会很棒.
顺便说一句,我知道这个页面,但我真的在寻找一个有效的代码示例.
我有一个相当详细的问题,关于包装已检查异常的正确方法,以及Guava的方式.(道歉,但我想让我的思考过程失败)
标准的Runnable接口如下所示:
public interface Runnable
{
public void run();
}
Run Code Online (Sandbox Code Playgroud)
哪里run()不能抛出一个检查过的异常.
因此,如果我想要一个Runnable用于包装抛出已检查异常的任务的东西,并且我打算让调用Runnable.run()处理这些异常的东西而不是Runnable.run()本身,我必须将异常包装在未经检查的异常中.
所以有一段时间我用的是:
Runnable r = new Runnable {
@Override public void run()
{
try {
doNastyStuff();
}
catch (NastyException e)
{
throw new RuntimeException(e);
}
}
};
Run Code Online (Sandbox Code Playgroud)
然后我可以在上层处理RuntimeException.除了我想,我真正想要的是分别处理一个包装的异常,因为我知道它的语义是包装一个已检查的异常,所以我写了这个帮助类:
/**
* Wrapped exception: the purpose of this is just to wrap another exception,
* and indicate that it is a wrapped exception
*/
public class WrappedException extends RuntimeException
{
/**
* @param …Run Code Online (Sandbox Code Playgroud) 有人能指出我在PySide中的一个简单的QTableView示例吗?
我找到了QTableView文档,但不幸的是他们没有给出一个例子,我对PySide很新,所以我甚至不知道如何开始.(我对Java Swing中的JTable非常熟悉,所以我知道如何使用表模型.)
我有一个自定义树单元格渲染器,我用它来渲染自定义图标JTree,我真的很喜欢警告图标和JOptionPane分别为警告消息和错误消息显示的错误图标.显然,我可以使用下面的代码来获取我自己使用的图标,但这很重要,需要我实例化我永远不会使用的对话框:
public class ValidationCellRenderer extends DefaultTreeCellRenderer {
private Icon warnIcon;
private Icon errorIcon;
public ValidationCellRenderer() {
JOptionPane optionPane = new JOptionPane(new Object(),
JOptionPane.WARNING_MESSAGE);
warnIcon = optionPane.getIcon();
optionPane = new JOptionPane(new Object(),
JOptionPane.ERROR_MESSAGE);
errorIcon = optionPane.getIcon();
}
}
Run Code Online (Sandbox Code Playgroud)
必须有更好的方法将这些图标作为资源,但我找不到从Java API中执行此操作的简单方法.有人有什么建议吗?
我想将matplotlib生成的图像存储在变量raw_data中,以将其用作内嵌图像.
import os
import sys
os.environ['MPLCONFIGDIR'] = '/tmp/'
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
print "Content-type: image/png\n"
plt.plot(range(10, 20))
raw_data = plt.show()
if raw_data:
uri = 'data:image/png;base64,' + urllib.quote(base64.b64encode(raw_data))
print '<img src = "%s"/>' % uri
else:
print "No data"
#plt.savefig(sys.stdout, format='png')
Run Code Online (Sandbox Code Playgroud)
这些功能都不适合我的用例:
当我看到javadoc时,FontMetric.getAscent()我看到:
字体上升是从字体的基线到大多数字母数字字符顶部的距离.Font中的某些字符可能会延伸到字体上升线之上.
但我写了一个快速的演示程序,我看到了这个:

其中每行文本的4条水平线是:
getDescent()getAscent()getHeight()注意getAscent()行和字符顶部之间的空格.我看过大多数字体和大小,总是存在这种差距.(而字体下降看起来恰到好处.)是什么给出的?
package com.example.fonts;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.GraphicsEnvironment;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.JTextPane;
import javax.swing.SpinnerNumberModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class FontMetricsExample extends JFrame
{
static final int marg = 10;
public FontMetricsExample()
{
super(FontMetricsExample.class.getSimpleName());
JPanel panel = new JPanel(new BorderLayout());
JPanel fontPanel = …Run Code Online (Sandbox Code Playgroud) java ×8
python ×2
annotations ×1
concurrency ×1
eclipse ×1
exception ×1
fontmetrics ×1
guava ×1
html ×1
image ×1
jsr223 ×1
jtree ×1
matplotlib ×1
path ×1
phaser ×1
pyside ×1
qtableview ×1
rhino ×1
scripting ×1
stax ×1
swing ×1
xml ×1