很难为我解释,用英语更难......我有这个组件构造函数
Balonik = new BalloonTip(textfield, new JLabel("Do not devide by 0!"),
new RoundedBalloonStyle(5,5,Color.WHITE, Color.BLACK),
BalloonTip.Orientation.RIGHT_BELOW,
BalloonTip.AttachLocation.ALIGNED,
15,
15,
false
);
我把这段代码放在netbeans jFrame项目中的框架构造函数中
public oknoo() {
initComponents();
Balonik = new BalloonTip(textfield, new JLabel("Do not devide by 0!"),
new RoundedBalloonStyle(5,5,Color.WHITE, Color.BLACK),
BalloonTip.Orientation.RIGHT_BELOW,
BalloonTip.AttachLocation.ALIGNED,
15,
15,
false
);
}
它正在编译,但是气球提示没有显示。
有趣的是,当 Ive 将项目导出到 eclipse(我可以在其中编辑 initComponent() 函数)并将这个组件构造函数保留在 initComponent() 函数中时,它就可以工作了。所以相同的代码在 initComponent() 函数中工作,而不是在构造函数中工作。
我不明白。我问,因为我不能只是在 Eclipse 中解决这个问题并导出回 netBeans....因为这个...
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
BalloonTip
不会显示,因为它是在调用pack()
之后创建的。您需要在 initComponents()
之后在构造函数上调用 pack()
,不是在那个方法上。
public oknoo() {
initComponents();
Balonik = new BalloonTip(textfield, new JLabel("Do not devide by 0!"),
new RoundedBalloonStyle(5,5,Color.WHITE, Color.BLACK),
BalloonTip.Orientation.RIGHT_BELOW,
BalloonTip.AttachLocation.ALIGNED,
15,
15,
false
);
pack();
}
但是pack()
不应该被召唤initComponents()
.在"JFrame
的代码属性"(右键单击 GUI 生成器上的框架 -> 属性)上,为"窗体大小策略"选择"无大小调整代码"。