Добавление строки на панель из 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 работает.