小编iva*_*off的帖子

在Java Swing中使用AccessibleContext有什么用?

我见过很多使用
getAccessibleContext().setAccessibleDescription(...)
设置一些"魔术"描述的例子.

这种描述有什么用?在哪里可以看到它应该如何支持可访问性?

为什么不使用setDescription(...)

另外,您对Java辅助功能的看法/经验是什么?

java user-interface swing accessibility

7
推荐指数
1
解决办法
5321
查看次数

Java:改变UI字体(Nimbus)不起作用!

我指的是这个Nimbus参考.

我试图将全局字体设置得略大一些:

UIManager.put("defaultFont", new Font(Font.SANS_SERIF, 0, 16));
Run Code Online (Sandbox Code Playgroud)

...仅适用于菜单,但没有其他功能(按钮,标签).

我试着改变标签和按钮字体

UIManager.put("Button.font", new Font(Font.SANS_SERIF, 0, 16));
UIManager.put("Label.font", new Font(Font.SANS_SERIF, 0, 16));
Run Code Online (Sandbox Code Playgroud)

但字体仍然存在.

唯一对我有用的是派生字体:

someButton.setFont(someButton.getFont().deriveFont(16f));
Run Code Online (Sandbox Code Playgroud)

但这不是一个选项,因为必须 手动为每个元素执行此操作.

注意,为UIManager导出字体也不起作用:

UIManager.put("Label.font",
    UIManager.getFont("Label.font").deriveFont(16f));
Run Code Online (Sandbox Code Playgroud)

我测试了Linux和Windows下的所有内容:相同的行为.

我只是无法理解API如何如此混乱.如果一个方法被称为setFont(..),那么我希望它设置字体.如果此方法无法在任何可想象的情况下设置字体,则应该弃用它.

编辑:
问题不仅适用于Nimbus,还适用于默认的LAF.

java user-interface fonts swing nimbus

6
推荐指数
2
解决办法
9427
查看次数

Swing:如何制作带有柔和边框的非矩形窗口?

如何在Java中制作带有软边框的非矩形窗口?
软边框(也称为软剪裁)是没有锯齿伪影的边框.

我在网上搜索了很多,发现了几个关于半透明和/或非矩形窗户的帖子.

"软边界"这一主题令人困惑.似乎我发现的信息涉及将软边框应用于另一个Java组件内部的组件.

但是,我可以,或者我可以不将软边框应用于仅放置在桌面上的自定义形状的JWindow吗?

我主要提到以下帖子:http:
//today.java.net/pub/a/today/2008/03/18/translucent-and-shaped-swing-windows.html

当谈到软剪辑时,文章转发到
http://weblogs.java.net/blog/campbell/archive/2006/07/java_2d_tricker.html
但是这里描述了对现有Graphics2D对象的软剪辑.

java user-interface swing awt effects

6
推荐指数
1
解决办法
3049
查看次数

Findbugs + JSR305:指定默认行为的可能性?

注意:我正在谈论的那些注释是由JSR305指定的.

我有最新的Findbugs(1.3.9), 当一些用@Nonnull注释的字段被赋值为null时,它会正确地发现错误.

但是,在我的项目中,"非空逻辑"是默认情况.我会说 只有5%的情况才明确允许null.

因此,用@Nonnull注释95%的字段会非常不方便.我更愿意用@Nullable注释那些5%的字段.

我尝试使用@Nonnull注释整个包,它不会改变任何东西.

那么,以某种方式可以指定默认逻辑?

java static-analysis findbugs jsr305

6
推荐指数
1
解决办法
807
查看次数

Java:循环泛型类型关系不允许从超类型转换(javac bug)

我遇到了Java编译器的一个完全奇怪的行为.
当涉及循环泛型类型关系时,我无法将超类型强制转换为子类型.

JUnit测试用例重现问题:

public class _SupertypeGenericTest {

    interface ISpace<S extends ISpace<S, A>, A extends IAtom<S, A>> {
    }

    interface IAtom<S extends ISpace<S, A>, A extends IAtom<S, A>> {
    }

    static class Space
            implements ISpace<Space, Atom> {
    }

    static class Atom
            implements IAtom<Space, Atom> {
    }

    public void test() {
        ISpace<?, ?> spaceSupertype = new Space();
        IAtom<?, ?> atomSupertype = new Atom();

        Space space = (Space) spaceSupertype;  // cast error
        Atom atom = (Atom) atomSupertype;  // …
Run Code Online (Sandbox Code Playgroud)

java generics types casting

5
推荐指数
1
解决办法
1531
查看次数

在Swing中使用大型自定义组件时,如何有效地重新绘制?

我创建了一个自定义组件(派生自JComponent),它代表了一个可拖动的Bezier曲线.
(看起来像挂电缆,有人可能从Bender或Cubase知道它)

我的问题是:曲线可能变得非常长,让我们说从桌面的左上角到右下角.

这使得Swing的重绘功能效率低下:曲线的面积可能只有几百个像素,但是组件的面积(大部分是"透明的")是数百万像素的大.

我的主观印象是:
曲线越长,拖动时的闪烁就越多.

我希望我能清楚地说明这个问题.

也许当我以某种方式可以自己选择时,它会有所帮助 ,该组件的哪些区域需要重新绘制.

编辑:
这么乱!我正在使用Netbeans分析应用程序,这有助于正常找到低效的代码,但是这个Swing框架正在进行数百次嵌套调用!我只是想不通,什么是缓慢的,为什么.
顺便说一句,禁用super.paint(...)super.paintComponent(...)没有帮助.

java graphics optimization user-interface swing

5
推荐指数
1
解决办法
3944
查看次数

获得JPopupMenu的位置

我在找到JPopupMenu位置时遇到了麻烦.

我需要的是能够右键单击工作区,点击一些
菜单项,然后创建一个元素来代替正确的先前显示的菜单的位置下.

我试着获取菜单本身及其项目的位置,
但它给了我大约0的常量值.(参见代码中的注释)

由于关注点分离,菜单显示在一个类中,
而其操作在另一个类中处理.

public final class MainFrameMenu
    extends JPopupMenu
    implements ActionListener {

  private final MainFrame mainFrame;
  private final JMenuItem item1 = new JMenuItem("add line");
  private final JMenuItem item2 = new JMenuItem("add element");

  public MainFrameMenu(MainFrame mainFrame) {
    super("Main menu");
    this.mainFrame = mainFrame;

    item1.addActionListener(this);
    item2.addActionListener(this);

    add(item1);
    add(item2);
  }

  @Override
  public void actionPerformed(ActionEvent e) {
    if (e.getSource() == item1) {
      System.out.println(getLocation()); // gives ALWAYS [0, 0]
      System.out.println(item1.getLocation()); // gives …
Run Code Online (Sandbox Code Playgroud)

java usability user-interface swing

5
推荐指数
2
解决办法
4970
查看次数

如何在内部创建,布局,重新绘制Swing组件,通知事件,......?

我想知道是否有关于Swing组件生命周期的良好文档(或(可查看的)电子书).

无论如何,"生命周期"是正确的术语吗?

我希望找到问题的答案,例如:

  • 如何,何时,以何种顺序调用绘画方法
  • 如何,何时,由谁调用哪些事件
  • 组件创建的方法调用的确切顺序是什么?

我不时遇到我的应用程序的奇怪行为,例如:

  • ComponentListener的resize事件setVisible(true)之前调用
    (以便根窗格具有负尺寸!)
  • 只有在手动调整JFrame大小后,才能正确布局某些组件
  • 将超类从JPanel更改为JLayeredPane会导致我的类在其他容器中的布局不同.
  • 还有很多其他奇怪的事情......

java graphics user-interface swing awt

5
推荐指数
1
解决办法
1233
查看次数

使用哪种数据库技术可以持久化对象?(某些东西不要求我把对象映射到表格和后面)?

我需要为项目使用面向对象的数据存储库.
它将成为维基和CMS之间的东西.

我还不是坚持领域的专家.
我想Hibernate和Jackrabbit是要去的框架,对吧?

至于我正确地告知,兔崽子支持
注释或其他方便的技术映射
对象实例和数据存储之间.

另一方面,Hibernate 支持 开箱即用的版本控制
.

你建议我用什么?
我可以在某种程度上结合这两个框架吗?

如果可能的话,你能否总结一下这两个框架的优缺点?

谢谢!

编辑
我真的想要使用一些不需要我处理将对象映射到表格和背面的东西.我为什么要?我们住在哪个世纪?;)

我对JAXB有很好的经验(将对象映射到XML并以面向对象的方式返回),但JAXB在数据库中没有用处.

java database oop hibernate jackrabbit

5
推荐指数
1
解决办法
981
查看次数

Java 6:使用javax.script实现自己的脚本语言的示例?

我真的找不到使用 javax.script实现自己的脚本语言的好例子...

我需要一些东西才能开始.

  • 单证
  • 例子
  • 教程
  • 影片
  • 演示幻灯片(PDF)

注1:我真的不是在谈论的javascript;)
注2:我并不需要的例子,如何利用现有的实现,我想实现一个自己的语言.

谢谢.

java scripting-language javax.script jdk1.6

5
推荐指数
1
解决办法
2119
查看次数