编程语言
首页 > 编程语言> > java – 添加操作后在Swbox的Checkbox组件上缺少文本

java – 添加操作后在Swbox的Checkbox组件上缺少文本

作者:互联网

我正在写一个简单的Swing应用程序.我尝试添加如下所示的复选框.一旦我添加了actionHandler loadPickers,名称Foo就会从它位于chckbxNewCheckBox右侧的位置消失.我尝试添加对setHideActionText()的调用,但现在没有显示任何内容.

JCheckBox chckbxNewCheckBox = new JCheckBox("Foo");
chckbxNewCheckBox.setToolTipText("");
chckbxNewCheckBox.setName("");
chckbxNewCheckBox.setHideActionText(true);
chckbxNewCheckBox.setAction(loadPickers);
mainPanel.add(chckbxNewCheckBox, "flowy,cell 0 1");

如果我将其更改为此功能正常.我看到文字“Foo”.

JCheckBox chckbxNewCheckBox = new JCheckBox("Foo");
chckbxNewCheckBox.setToolTipText("");
chckbxNewCheckBox.setName("");
chckbxNewCheckBox.setHideActionText(true);
chckbxNewCheckBox.setAction(loadPickers);
chckbxNewCheckBox.setText("Foo"); //THIS DOES NOT WORK IF IT COMES BEFORE SET ACTION
mainPanel.add(chckbxNewCheckBox, "flowy,cell 0 1");

为了完整起见,我已将此处包含在此处.为什么这样工作?我在这里错过了什么吗?目前我正在使用Eclipse的WindowBuilder插件和Mig布局系统(我非常喜欢).不幸的是,我还没弄清楚是否有办法让WindowBuilder使用.setText()方法而不是使用构造函数.对于我做错的任何帮助,对此行为存在的原因有任何见解,或者WindowBuilder的一个好的解决方法都会很棒.

private class LoadPickers extends AbstractAction {
    public LoadPickers() {
        //putValue(NAME, "SwingAction_2");
        putValue(SHORT_DESCRIPTION, "Some short description");
    }
    public void actionPerformed(ActionEvent e) {
    }
}

解决方法:

正如AbstractButton.setAction的JavaDoc中所解释的那样:

Setting the Action results in immediately changing all the properties described in 07001. Subsequently, the button’s properties are automatically updated as the Action’s properties change.

因此,通过设置操作可以影响以下所有属性:

>启用
> toolTipText
> actionCommand
>助记符
>文字
> displayedMnemonicIndex
>图标(JCheckBox的NA)
>加速器(JCheckBox的NA)
>选中

标签:jcheckbox,windowbuilder,java,swing,jbutton
来源: https://codeday.me/bug/20190901/1787273.html