Mar*_*oDS 1 java swing netbeans action jbutton
我刚刚注意到,当至少满足以下两个条件时,a JButton不会将文本更改NAME为耦合Action对象的值:
preferredSize属性不是默认值.text属性不是默认值""(空).可能有其他属性值组合使按钮忽略操作的名称,但是当我将一个或另一个置于默认值时,它可以工作.
我将明确表明该操作已正确注册,并且该hideActionText属性为false.此外,我应该说,我通过设置这些属性的属性面板中的Netbeans GUI设计.
一些谷歌搜索没有带来什么.这是正常行为,是否可以解决?
我会说两件事:
我没有看到所描述的行为有任何问题.如果未提供任何文本,则默认为Action的NAME(如果有).否则,它将是空的.如果你想强制使用preferredSize,那么在某些情况下,你有权这样做.
如果要显示Action NAME,则不要在JButton上设置另一个"text"值.
编辑
如果我设置文本而不是preferredSize,我仍然会看到按钮文本(即使文本太小太合适,你的文本也会得到"......").在这个SSCCE上自己测试一下:
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.io.IOException;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Main {
public static void main(String[] args) throws IOException {
JFrame frame = new JFrame();
frame.setTitle("frame");
final JButton button = new JButton(new AbstractAction("Action text") {
@Override
public void actionPerformed(ActionEvent e) {
System.err.println("Hello");
}
});
button.setText("Button text which is a lot longer");
button.setPreferredSize(new Dimension(100, 30));
frame.add(button);
frame.pack();
frame.setVisible(true);
}
}
Run Code Online (Sandbox Code Playgroud)