Jaz*_*epi 3 java swing jbutton jcheckbox windowbuilder
我正在写一个简单的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");
Run Code Online (Sandbox Code Playgroud)
如果我将其更改为此功能正常.我看到文字"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");
Run Code Online (Sandbox Code Playgroud)
为了完整起见,我已将此处包含在此处.为什么这样工作?我在这里错过了什么吗?目前我正在使用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) {
}
}
Run Code Online (Sandbox Code Playgroud)
正如AbstractButton.setAction的JavaDoc中所解释的:
设置Action会立即更改Swing组件支持操作中描述的所有属性.随后,随着Action的属性更改,按钮的属性会自动更新.
因此,通过设置操作可以影响以下所有属性:
| 归档时间: |
|
| 查看次数: |
568 次 |
| 最近记录: |