0

私にとってそれを説明するのは難しく、英語ではさらに難しいです...私はこのコンポーネントコンストラクターを持っています

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

コンパイルしていますが、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() {
4

1 に答える 1

0

BalloonTippack()が呼び出された後に作成されるため、表示されません。そのメソッドではなく、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 ビルダーのフレームを右クリック -> プロパティ) で、 No Resize Code for Form Size Policyを選択します。

于 2015-01-13T14:53:13.120 に答える