JDialog не будет отображаться во вкладке дизайна - PullRequest
0 голосов
/ 05 июля 2019

Я работаю с плагином Window Builder для Eclipse.

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

package testshowjdialog;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class MyJDialog extends JDialog {

    private static final long serialVersionUID = 1L;

    public MyJDialog(JFrame parent) {
        super(parent, true);


        setTitle("A Title");

        JButton button = new JButton("Test");
        add(button);

        setSize(100, 100);
    }

    /**
     * @wbp.parser.entryPoint
     */
    public static void main(String [] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                MyJDialog dialog = new MyJDialog(new JFrame());
                dialog.setVisible(true);
            }
        });
    }
}

Есть идеи почему?

1 Ответ

1 голос
/ 05 июля 2019

Попробуйте удалить комментарий над основным методом, указав точку входа для WindowBuilder.

Этот комментарий обычно используется, когда окно / диалог создается не как его собственный класс, а как метод другого класса.Подумайте о методе showCustomDialog(), который создает и показывает диалог, но класс делает много других вещей в других методах.Затем можно указать WindowBuilder, где он должен начать синтаксический анализ кода, чтобы определить, какое окно / диалоговое окно должно отображаться для редактирования.

Скорее всего, WindowBuilder не может правильно проанализировать ваш main-метод и не распознает, чтоокно / диалог, которое вы пытаетесь создать, и, таким образом, показывает только пустую рамку.Удаление комментария pointpoint заставит WindowBuilder разобрать конструктор вашего класса, что должно сработать лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...