Как заставить мой виджет netbeans перетаскивать, чтобы узнать, выполняет ли он рендеринг в окне представления дизайна netbeans или в запущенном приложении? - PullRequest
0 голосов
/ 30 декабря 2008

Как я могу заставить свой виджет перетаскивания netbeans узнать, выполняет ли он рендеринг в окне представления дизайна netbeans или в запущенном приложении?

Я пытаюсь сделать пользовательский рендеринг. Я думаю, что это связано с корневым контейнером.

Ответы [ 3 ]

0 голосов
/ 31 декабря 2008

Это еще один метод:

Component c = javax.swing.SwingUtilities.getRoot(this);
String className = c.getClass().getCanonicalName();
if (!"org.netbeans.core.windows.view.ui.MainWindow"
    .equalsIgnoreCase(className)) {

Хотя я думаю

 Beans.isDesignTime() 

метод лучше

0 голосов
/ 31 декабря 2008

Тестирование

Beans.isDesignTime()

со следующим примером

package test;

import java.awt.Graphics;
import java.beans.Beans;

import javax.swing.JLabel;

public class TestLabel extends JLabel {
private static final long serialVersionUID = -2438507032083091628L;

public TestLabel() {
    super();
}

public void paint(Graphics g) {
    super.paint(g);

    if (Beans.isDesignTime()) 
        this.setText("Design Time");
    else
        this.setText("Production runtime");
}
}

Это работает - это невероятно.

0 голосов
/ 30 декабря 2008

Попробуйте java.beans.Beans.isDesignTime () .

...