NetBeans GUI编辑器,无法构造对象

时间:2015-01-12 21:13:56

标签: java swing netbeans balloon-tip

很难为我解释,甚至更难用英语解释...... 我有这个组件构造函数

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项目的 frame 构造函数中

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
    );
}

它正在编译但是BalloonTip没有显示出来。

有趣的是,当我将项目导出到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() {

1 个答案:

答案 0 :(得分:0)

BalloonTip未显示,因为它是在pack()被调用后创建的。 您需要在pack()之后在构造函数上调用initComponents(), 不是那种方法。

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构建器上的框架 - &gt;属性),为表单大小政策选择无调整代码