问题是关于Java 5和Drag n Drop.
有没有办法确定放置目标中的拖动源组件TransferHandler?
我需要在我canImport(..)或importData(..)方法中知道这一点,以便为相同类型的传输数据采取不同的操作DataFlavor.
我目前实现这一目标的方法是劫持DataFlavor"人类可读字段"并设置字符串操作,结果如下:
DataFlavor localCopyFooFlavor = new DataFlavor(Foo.class, "COPY");
DataFlavor localEditFooFlavor = new DataFlavor(Foo.class, "EDIT");
Run Code Online (Sandbox Code Playgroud)
然后使用此字段来决定要采取的操作.我很确定这是错的.
谢谢.
我正在尝试使用JavaMail 1.4 API阅读电子邮件帐户Office365的文件夹中的电子邮件。
我的代码是:
public static void main(String argv[]) throws Exception {
// Get a Properties object
Properties props = System.getProperties();
// Get a Session object
Session session = Session.getInstance(props, null);
// Get a Store object
Store store = null;
Folder rf = null;
if (CUR_MAIL_PROTOCOL != null)
store = session.getStore("imap");
// Connect
if (CUR_MAIL_HOST != null || CUR_MAIL_LOGIN != null || CUR_MAIL_PWD != null)
store.connect("outlook.office365.com", 993, "**MYEMAIL**", "**MYPASS**");
else
store.connect();
// List namespace
rf = store.getDefaultFolder();
getFolderDetails(rf, true, ""); …Run Code Online (Sandbox Code Playgroud) 经过多年的努力,我即将再次进入Java开发阶段.我使用的语言修订版是1.4.2.我知道从那以后语言发生了重大变化,我正在寻找一个详细介绍这些内容的网站或书籍.至少,我正在寻找一个资源,指出在哪个版本中添加了哪些语言功能,所以我可以一目了然地跳过我已经熟悉的部分.有什么建议 ?
我知道你可以使用Java 6来做到这一点java.net.NetworkInterface->getHardwareAddress().但是我部署的环境仅限于Java 5.
有人知道如何在Java 5或更早版本中执行此操作吗?非常感谢.
我尝试编译我的webapplication,javac – source 1.5 – target 1.4我最终得到了错误:javac:source release 1.5需要目标版本1.5
因为我正在使用泛型和其他功能; 当我尝试编译时,–source 1.4我最终得到了错误:
(use -source 5 or higher to enable generics)
(use -source 5 or higher to enable for-each loops)
(use -source 5 or higher to enable annotations)
Run Code Online (Sandbox Code Playgroud)
我需要部署到安装了Java 1.4的盒子; 其中我无法控制,所以升级是不可能的.
建议?
我在一个针对Java 1.5的应用程序中有一个带有自定义消息面板的JOptionPane.该面板包含JTextField等.每20个调用左右,对话框中的任何内容都不会被绘制(甚至不是OK/Cancel按钮).如果我将对话框从屏幕拖出并再次返回以强制重新绘制,则组件可以按预期显示,除了绘制问题之外,组件响应正常.这是我可以展示这个bug的最小例子:
public class BugTest {
public static void main(String args[]) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
// The text field needs to be wrapped in a panel for the bug to show up.
JPanel messagePanel = new JPanel();
// A JLabel won't exhibit the bug, but a JTextField will.
JTextField textField = new JTextField("Some content");
messagePanel.add(textField);
// Loop so we can keep clicking OK until the bug shows up.
while (true) {
int res = JOptionPane.showOptionDialog(null, messagePanel, …Run Code Online (Sandbox Code Playgroud) 首先,根据文档,JAX-WS参考实现应该与Java 5一起使用.
但是,使用最新版本(2.2.7)的二进制包使用Java 6(类版本50.0)进行编译,因此将其与Java 5一起使用将导致抛出UnsupportedClassVersionError.我已经下载了Java源代码并尝试使用Java 5编译它们,但由于依赖库是为Java 6编译的,因此它也无法直接工作.我已经尝试使用"-target 1.5"编译Java 6的新版本,以至少在编译的文件中获得正确的类版本,但我不确定是否遇到其他问题,如果实际在某些时候执行期望Java 6或更新版本.
有没有人知道最新的JAX-WS RI版本,已知可以与Java 5一起使用而没有类似的解决方法?
编辑:
为了回答我的问题的至少一部分,JAX-WS RI实现利用Java 6 SE API中的新功能,并且不会在Java 5上运行,即使这些类是针对目标1.5编译的.至少类org.jvnet.ws.message.BasePropertySet使用类java.util.AbstractMap $ SimpleImmutableEntry,它仅在Java 1.6之后可用.
我将向您展示两种泛型声明.在part1中,我在List上使用泛型上边界声明如下:
List<? extends Animal> totList = new ArrayList<Animal>();
Run Code Online (Sandbox Code Playgroud)
但是,如果您尝试将Animal对象添加到列表中,则会抛出如下所示的错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method add(capture#1-of ? extends Animal) in the type List<capture#1-of ? extends Animal> is not applicable for the arguments (Animal)
at GenericsType.main(GenericsType.java:39)
Run Code Online (Sandbox Code Playgroud)
但在第2部分,如果我声明如下格式的通用类中的名单,没有错误,同时增加(Animal对象)或(Animal对象的子类)到列表中抛出.
class GenericAnimal<T extends Animal>
{
List<T> genList = new ArrayList<T>();
}
Run Code Online (Sandbox Code Playgroud)
为什么在part2中,它没有抛出错误,两种声明风格之间有什么区别.
示例代码:
1.Animal.java
public class Animal {
private String name;
private int height;
public void animalJump()
{
if(height>100)
{
System.out.println(name+" with height-"+height+" can JUMP");
}
else
System.out.println(name+" with height-"+height+" …Run Code Online (Sandbox Code Playgroud) 我在一本书(法语中的Clame Delannoy的Programmez en Java 5 et 6)中读过,在Java 5及其以前的版本中,如果你在一个类中有一个抽象方法,那么这个类是抽象的,没有必要提及abstract课前的关键字.
这个陈述是真的吗?我试图找到Java SE 5规范,但它无法访问.
Java 1.5中是否存在Enumerable.Cast()与C#相同的内容?我想为ArrayList<MyType>声明为的变量赋值List<Object>.Eclipse抱怨"类型不匹配:无法转换ArrayList<MyType>为List<Object>".我只是使用List和ArrayList没有泛型,但编译器警告这一点,我想清理一些警告.