小编Rob*_*ert的帖子

扩展JMenu给它一个复选框?

我正在计划组合JMenu和JCheckBoxMenuItem,所以我可以:(1)一个包含这个新组件实例的弹出菜单.(2)这个新组件左侧有一个复选框,并且能够向右扩展并显示其他子菜单(如常规JMenu)

我有几个问题:

首先,我是否重新发明轮子?/这是以前做过的吗?

其次,我试图弄清楚swing如何知道如何获得扩展Component类的UI类?(我看到例如JMenu有一个字符串uiClassID成员,它以某种方式用于此,但它不是确切的类名...我在UIDefaults中将其调试为HashTable查找)

java swing jmenuitem jmenu

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

Ruby Koans:正则表达式括号“捕获”匹配的内容?

我正在浏览 about_regular_expressions.rb 并且不明白这里到底发生了什么:

def test_variables_can_also_be_used_to_access_captures
    assert_equal "Gray, James", "Name:  Gray, James"[/(\w+), (\w+)/]
    assert_equal "Gray", $1
    assert_equal "James", $2
end
Run Code Online (Sandbox Code Playgroud)

在我看来,在正则表达式中使用括号会在幕后创建两个新变量($1 和 $2)。

它是否正确?

但后来我这样做了:

def test_variables_can_also_be_used_to_access_captures
    assert_equal "Gray, James", "Name:  Gray, James"[/(\w+), (\w+)/]
    assert_equal "Smith, Bobert", "Name:  Smith, Bobert"[/(\w+), (\w+)/]
    assert_equal "Smith", $1
    assert_equal "Bobert", $2
end
Run Code Online (Sandbox Code Playgroud)

它捕获了“史密斯”和“罗伯特”。我猜每次使用带有括号的新正则表达式时,以前的值都会被覆盖?

如果我尝试只捕获一个单词:

def test_variables_can_also_be_used_to_access_captures
    assert_equal "Gray, James", "Name:  Gray, James"[/(\w+), (\w+)/]
    assert_equal "Smith, Bobert", "Name:  Smith, Bobert"[/(\w+), (\w+)/]
    assert_equal "Smith", $1
    assert_equal "Bobert", $2
    assert_equal "Susan,", "Name:  Susan, whatever"[/(\w+),/]
    assert_equal "Susan", $1 …
Run Code Online (Sandbox Code Playgroud)

ruby

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

JCheckBox大小和射击动作

我有一些问题从JCheckBox触发一个动作:

JMenu topMenu = new JMenu("Top Menu");

MyAction action1 = new MyAction("Action1");
MyAction action2 = new MyAction("A2");

JCheckBox checkBox1 = new JCheckBox( action1 );
JCheckBox checkBox2 = new JCheckBox( action2 );

topMenu.add( checkBox1 );
topMenu.add( checkBox2 );
Run Code Online (Sandbox Code Playgroud)

当鼠标悬停在topMenu上时,它会展开并显示标记为"Action1"和"A2"的JCheckBox.单击复选框或文本切换复选框.

这部分有点难以解释:"A2"右侧有一个区域为空 - 由于"Action1"占用更多空间,因此当悬停在topMenu上时显示的子菜单将是"Action1"的宽度."A2"行的宽度相同,但只有复选框和"A2"才能触发动作.

单击"A2"文本右侧没有任何操作.我怎样才能以最简单的方式解决这个问题呢?

java swing action jmenuitem jmenu

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

标签 统计

java ×2

jmenu ×2

jmenuitem ×2

swing ×2

action ×1

ruby ×1