ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-09-02 01:03:02  阅读:313  来源: 互联网

标签:jcheckbox windowbuilder java swing jbutton


我正在写一个简单的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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有