Добавление строки на панель из JOptionPane

Я работаю над программой, которая позволяет пользователю вводить сообщение. Когда пользователь нажимает на пункт меню "сообщение", расположенный в моем кадре, JOptionPane Появится диалоговое окно ввода, предлагающее ввести строку. Проблема в том, что теперь я должен получить эту строку и вставить ее в свой класс панели. Кроме того, я также позволяю пользователю выбирать форму и цвет из другого диалогового окна, когда они нажимают на другой элемент меню, также расположенный в моей рамке. Строка должна быть поверх формы, которую я нарисовал. Я пытался нарисовать строку, но она не работает должным образом. Вот мой код, который не работает. Я просто хочу, чтобы строка нарисовалась на моей панели, когда я нажал OK на JOptionPane, Как бы я это сделал?

В моем кадре

private void messageItemActionPerformed(java.awt.event.ActionEvent evt) {
    // TODO add your handling code here:

    String message = JOptionPane.showInputDialog("Enter your string");

    // my panel
    drawP.setMessage(message);

}

в моей панели

public void setMessage(String s) {
    message = s;
}

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);

    // the user can select two different shapes this is
    // a boolean
    if (shape == true) {
        g.setColor(shapeColor);
        g.fillRect(x, y, 40, 40);
        g.drawString(message, x, y);

    } else {
        g.setColor(shapeColor);
        g.fillOval(x, y, 40, 40);
        g.drawString(message, x, y);
    }
}

1 ответ

Решение

Вы вызывали repaint() после того, как установили сообщение? Я пытался раньше, перекраска JFrame, кажется, не работает, но перерисовка JPanel работает.

Другие вопросы по тегам