Мой код не выполняется при запуске - PullRequest
0 голосов
/ 24 июня 2018

Мне нужно рисовать формулы после запуска апплета, поэтому я пытаюсь сделать следующее:

public class SearchIdeaApplet extends JApplet {

    private JPanel mRootPanel;
    private JButton mPrevButton;
    private JButton mNextButton;
    private JButton mUpdateButton;
    private JPanel mPlotPanel;
    private JPanel mFormulaPanel;

    private void drawFormulas() {
        TeXFormula formula = new TeXFormula("x^2 + 3*y^2");

        // render the formula to an icon of the same size as the formula.
        TeXIcon icon = formula
                .createTeXIcon(TeXConstants.STYLE_DISPLAY, 20);
        icon.setInsets(new Insets(5, 5, 5, 5));

        // now create an actual image of the rendered equation
        BufferedImage image = new BufferedImage(icon.getIconWidth(),
                icon.getIconHeight(), BufferedImage.TYPE_INT_ARGB);
        Graphics2D g2 = image.createGraphics();
        g2.setColor(Color.white);
        g2.fillRect(0, 0, icon.getIconWidth(), icon.getIconHeight());
        JLabel jl = new JLabel();
        jl.setForeground(new Color(0, 0, 0));
        icon.paintIcon(jl, g2, 0, 0);
        // now draw it to the screen
        Graphics g = mFormulaPanel.getGraphics();
        g.drawImage(image,0,0,null);
    }

    @Override
    public void init() {

        try {
            SwingUtilities.invokeAndWait(this::initSwing);
        } catch (InterruptedException | InvocationTargetException e) {
            e.printStackTrace();
        }
    }

    private void onUpdateButtonClick(ActionEvent event) {
        drawFormulas();
    }

    private void initSwing() {
        setContentPane(mRootPanel);
        drawFormulas(); //It doesn't work
        mUpdateButton.addActionListener(this::onUpdateButtonClick);
    }
}

Но drawFormulas() вызов в initSwing() не имеет никакого эффекта.Но если я нажму mUpdateButton, мои формулы будут показаны.
Как ждать, когда GUI будет готов к рисованию формул?

...