我正在尝试为特定目的创建一些特殊组件,在该组件上我需要绘制一个HTML字符串,这是一个示例代码:
public class MyComponent extends JComponent{
public MyComponent(){
super();
}
protected void paintComponent(Graphics g){
//some drawing operations...
g.drawString("<html><u>text to render</u></html>",10,10);
}
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,drawString方法似乎没有识别HTML格式,它愚蠢地绘制字符串就像它一样.
有没有办法让这项工作?
我正在使用SWING开发单声道用户桌面应用程序.我对使用java.sql api的这种应用程序有一点经验,并且发现它根本不舒服......
在我的新应用程序中,我第一次尝试使用JPA,我已经阅读了很多教程,这些教程让我理解了我所需要的几乎所有东西,但没有找到真正的Java桌面应用程序的好例子.
我正在考虑使用以下架构,但不知道我是否正确......
我想创建一个MyPersistenceUnit类:
public class MyPersistenceUnit {
private static EntityManagerFactory factory;
private static EntityManager entityManager;
public static void initiate(){
factory=Persistence.createEntityManagerFactory("PU_Name");
entityManager=factory.createEntityManager();
}
public static EntityManager getEntityManager() {
return entityManager;
}
public static void close(){
entityManager.close();
factory.close();
}
}
Run Code Online (Sandbox Code Playgroud)
activate()方法将是第一个被调用的方法,并且当应用程序关闭时将调用close()方法.
在应用程序运行时,所有事务都将通过getEntityManager()实例完成,该实例可在应用程序的每个位置访问.如果我对JSE应用程序的理解是正确的,那么获得的实体管理器有一个扩展的持久化上下文,它将使所有实体保持在托管状态,而实体管理器不会被关闭,这就是让我这样思考的原因......
我不知道我是否遗漏了什么,所以任何小费都会受到赞赏
请注意,我正在使用eclipselink提供程序和derby嵌入式数据库.
谢谢
设为以下实体:
@Entity
public class Person {
@Id
long id;
@ManyToOne
Family fam;
@ManyToOne
Job job;
}
@Entity
class Family{
@Id
long id;
@OneToMany(mappedBy="fam")
@OrderBy("job")
List<Person> p;
}
@Entity
class Job implements Comparable<Job>{
@Id
long id;
String descr;
public int compareTo(Job o) {
return descr.compareTo(o.descr);
}
}
Run Code Online (Sandbox Code Playgroud)
我面临的问题来自@orderby批注,这与我的预期相去甚远,似乎不支持可比较的实体。
我正在使用eclipselink 2.3,想知道是否还有其他工具可以解决此问题。
最好的问候
乔治